KR20110046552A - PCIe 인터페이스 상에서 SATA 대량 저장 장치 에뮬레이션 - Google Patents
PCIe 인터페이스 상에서 SATA 대량 저장 장치 에뮬레이션 Download PDFInfo
- Publication number
- KR20110046552A KR20110046552A KR1020117006597A KR20117006597A KR20110046552A KR 20110046552 A KR20110046552 A KR 20110046552A KR 1020117006597 A KR1020117006597 A KR 1020117006597A KR 20117006597 A KR20117006597 A KR 20117006597A KR 20110046552 A KR20110046552 A KR 20110046552A
- Authority
- KR
- South Korea
- Prior art keywords
- pcie
- mass storage
- sata
- storage device
- host
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/38—Universal adapter
- G06F2213/3802—Harddisk connected to a computer port
Abstract
대량 저장 장치, 시스템, 및 대량 저장 장치 동작 방법이 개시된다. 한 이러한 대량 저장 장치에서, 호스트 버스 어댑터는 호스트 시스템과의 PCIe 인터페이스를 통해 SATA 대량 저장 장치를 에뮬레이트한다. 호스트 시스템은 마치 SATA 대량 저장 장치와 통신하는 것처럼한다면 동일한 포맷으로 PCIe 대량 저장 장치에 명령들을 발생한다. PCIe 대량 저장 장치는 동일한 SATA 포맷으로 응답한다.
Description
본 발명은 일반적으로 메모리 장치들에 관한 것으로, 특정 실시예에서 본 발명은 SATA 대량 저장 장치들에 관계된 것이다.
주변 성분 상호연결(PCI) 표준은 주변장치들을 컴퓨터 머더보드에 연결하기 위한 컴퓨터 버스를 기술한다. 이들 주변 장치들은 전형적으로 확장 카드 또는 이외 이러한 장치의 형태를 취한다. PCI 표준은 버스의 물리적 크기, 전기적 특징들, 버스 타이밍, 및 버스를 통해 통신하는데 필요한 프로토콜들을 다루고 있다.
기본 PCI 표준은 현 세대 및 차세대의 I/O 및 저장 장치들이 필요로 하는 대역폭 및 특징들을 제공하지 못하는 몇가지 단점들이 있다. 한 이러한 문제는 버스 속도 및 확장성(scalability)를 제한시키는 대개는 병렬 공유-버스 아키텍처이다. 또한, 단순, 로드-스토어, 플랫 메모리-기반 통신 모델은 라우팅되는 패킷-기반 모델보다는 신뢰성이 덜하고 덜 확장가능하다.
기본 PCI 표준의 일부 문제들을 해결하기 위해 컴퓨터 확장 카드 인터페이스 포맷인 PCI 익스프레스(PCIe)가 설계되었다. PCI 인터페이스와는 달리, 버스라기보다는, PCIe 인터페이스는 레인(lane)이라고도 하는 직렬(1 비트)의 일방향 링크들의 점 대 점 쌍들을 중심으로 구성된다. 이것은 모든 장치들이 동일 양방향 32-비트(또는 64-비트) 병렬 신호 경로를 공유하는 버스-기반 시스템인 PCI 표준과는 대조적이다.
PCIe의 점 대 점 버스 토폴로지에서, 공유 스위치가 단 하나의 공유 자원으로서 PCI의 공유 버스를 대신하고 있고 이 자원에 의해 모든 장치들이 통신한다. 버스를 사용하기 위해 장치들 전부가 자기들끼리 중재해야 하는 공유 버스 토폴로지에서와는 달리, PCIe 시스템 내 각각의 장치는 자기만이 스위치에 곧바로 액세스할 수 있다. 즉, 각각의 PCIe 장치는 자기 자신의 전용 레인에 연결된다.
PCIe는 두 장치들 간에 통신을 위해서 점 대 점 유형의 직렬 상호연결을 구현한다. 복수의 PCIe 장치들은 스위치들을 사용하여 상호연결되는데 이는 시스템에서 실제로 많은 수의 장치들을 함께 연결할 수 있음을 의미한다. 점 대 점 상호연결은 링크 상에 제한된 전기적 부하를 의미하므로 송신 및 수신 주파수들의 수를 훨씬 더 많이 확장할 수 있게 한다. 현재 PCIe 송신 및 수신 데이터 레이트 2.5 Gbits/sec이다. 두 장치들 간 직렬 상호연결에 따라 장치 패키지당 몇개의 핀들만 사용되므로 PCIe 칩 및 보드 설계 비용을 감소시키며 보드 설계 복잡성을 감소시킨다. PCIe 수행 또한 매우 확장가능하다. 이것은 이 상호연결에 대한 통신 수행 요건들에 기초하여 상호연결당 핀들의 확장가능한 수 및 신호 레인들을 구현함으로써 달성된다.
PCIe는 상당 수의 장치들을 상호연결하는 스위치 기반 기술을 구현한다. 직렬 상호연결을 통한 통신은 패킷-기반 통신 프로토콜을 사용하여 달성된다. 서비스질(QoS) 특징들은 응용들마다 차별화된 송신 수행을 제공한다. 핫 플러그/핫 스왑 지원으로 시스템들을 "항시-온" 상태에 있을 수 있게 한다. 어드밴스드 전력 관리 특징들은 저 전역 모바일 응용들을 위해 설계할 수 있게 한다. RAS(신뢰성, 이용가능성, 및 보수가능성) 오류 처리 특징들은 PCI 익스프레스를 고신뢰 하이-엔드 서버 응용들에 적합하게 한다. 핫 플러그, 전력 관리, 오류 처리 및 인터럽트 시그널링은 측대벽 신호들이 아니라 패킷 기반 메시징을 사용하여 대역내에서 달성된다. 이것은 장치 핀 수를 적게 유지하며 시스템 비용을 감소시킨다.
대량 저장 장치들(즉, 고체상태 플래시 메모리, 광학 드라이브들, 자기 디스크 드라이브들)은 전형적으로 호스트 컴퓨터와 통신하기 위해 SATA(직렬 어드밴스드 기술 탈부착, Serial Advanced Technology Attachment) 표준을 사용한다. 실제로, SATA 표준은 주로 1.5 ~ 3.0 Gbps의 데이터 레이트로 호스트 컴퓨터와 대량 저장 장치 간에 데이터 전송을 위해 설계되었다. 이전의 병렬 ATA 인터페이스에 비해 SATA의 주된 잇점들은 더 빠른 데이터 전송, 동작중에 장치들을 제거 또는 추가하는 능력(핫 스와핑), 및 더 엄격한 데이터 무결성 체크에 따른 더 신뢰성 있는 동작이다.
SATA 대량 저장 장치가 호스트 컴퓨터의 PCIe 연결부에 연결되기 위해서 PCIe-SATA 브리지 제어기가 사용된다. 브리지 제어기는 SATA 호스트 버스 어댑터(HBA)를 에뮬레이트한다. 도 1은 PCIe-SATA 브리지(100)를 사용하여 SATA 대량 저장 장치(102)에 연결되는 전형적인 종래 기술의 컴퓨터 호스트 시스템(101)의 블록도이다. 브리지(100)는 소프트웨어를 SATA 장치(102)와 통신할 수 있게 하는 하드웨어 메커니즘인 어드밴스드 호스트 제어기 인터페이스(AHCI)를 탑재한다. AHCI는 호스트 컴퓨터의 시스템 메모리와 SATA 장치(102) 간에 데이터 이동 엔진으로서 동작하는 PCIe 부류의 장치이다.
도 2 전형적인 종래 기술의 PCIe-SATA 브리지 제어기(100)의 블록도이다. 브리지 제어기(100)는 PCIe 링크의 아날로그 본질을 브리지 제어기(100)의 디지털 환경으로 전환시킬 수 있는 PCIe PHY 블록(201)으로 구성된다. 또한, PHY 블록(201)은 대략 2.5 Gbps 데이터 레이트를 Mbps 범위로 낮게 전환한다.
PCIe 코어(202)는 패킷 처리 및 디코딩을 제공한다. PCIe-SATA 코어 브리지(203)는 PCIe 코어(202)로부터 데이터를 취하여 이를 SATA 표준 포맷으로 바꾼다. 애플리케이션 블록(204)은 코어 브리지(203)로부터 SATA 정보를 처리한다. SATA 수송 블록(205)은 호스트와 장치 애플리케이션층 간에 정보를 전송하기 위한 메커니즘인 프레임 정보 구조(FIS)를 관리한다. SATA 링크층(206)은 SATA 표준 엔코딩을 제공한다. SATA PHY층(207)은 브리지 제어기(100)의 디지털 환경으로부터 SATA 인터페이스의 아날로그 환경으로의 전환을 수행한다. SATA PHY 블록(208)은 SATA 버스를 통해 1.5 ~ 3.0 Gbps 데이터 레이트를 제공하는 송신 회로들로 구성된다.
도 3은 전형적인 종래 기술의 SATA 대량 저장 장치(102)의 블록도이다. 저장 매체(306)는 위에 기술된 브리지 제어기(100)와 동일하지만 역순서로 층들(301 ~ 305)을 사용하여 SATA 버스에 인터페이스된다. 이들 중복성(redundant) 기능들은 구현하기 위해 SATA 대량 저장 장치(102) 상에 추가적으로 구역을 필요로 할뿐만 아니라, PCIe에서 SATA로 그리고 저장 매체(306)로 가는데 필요한 중복성 변환들에 기인하여 호스트에서 대량 저장 장치로 통신하는데 요구되는 시간이 증가된다.
위에 언급된 이유로, 그리고 본 명세서를 읽고 이해했을 때 당업자들에게 명백하게 될 이하 언급되는 다른 이유들로, 이 기술에서는 PCIe로 통신하는 대량 저장 장치가 HBA 및 SATA 저장 장치를 사용하는 것에 연관된 레이턴시와 비용을 감소시킬 필요성이 있다.
도 1은 전형적인 종래 기술에 따른 호스트 시스템에 SATA 장치 연결의 블록도이다.
도 2는 전형적인 종래 기술의 PCIe-SATA 브리지 제어기의 블록도이다.
도 3은 전형적인 종래 기술의 SATA 저장 장치의 블록도이다.
도 4는 PCIe 대량 저장 장치 시스템의 일실시예의 블록도이다.
도 5는 도 4의 시스템에 따른 PCIe 대량 저장 장치의 일실시예의 블록도이다.
도 6은 도 4의 시스템에 따른 AHCI 엔진의 일실시예의 블록도이다.
도 7은 도 6의 실시예에서 사용되는 프레임 정보 구조의 일실시예도이다.
도 8은 호스트와 PCIe 대량 저장 장치 간에 통신을 위한 방법의 일실시예의 흐름도이다.
도 2는 전형적인 종래 기술의 PCIe-SATA 브리지 제어기의 블록도이다.
도 3은 전형적인 종래 기술의 SATA 저장 장치의 블록도이다.
도 4는 PCIe 대량 저장 장치 시스템의 일실시예의 블록도이다.
도 5는 도 4의 시스템에 따른 PCIe 대량 저장 장치의 일실시예의 블록도이다.
도 6은 도 4의 시스템에 따른 AHCI 엔진의 일실시예의 블록도이다.
도 7은 도 6의 실시예에서 사용되는 프레임 정보 구조의 일실시예도이다.
도 8은 호스트와 PCIe 대량 저장 장치 간에 통신을 위한 방법의 일실시예의 흐름도이다.
발명의 다음 상세한 설명에서, 이의 일부를 이루며 예시로서 발명이 실시될 수 있는 특정 실시예들이 도시된 동반된 도면들을 참조한다. 도면들에서, 몇몇 도면에서 동일 구성요소에 동일 참조부호를 사용한다. 이들 실시예들은 당업자들이 발명을 실시할 수 있게 할만큼 충분히 상세히 기술된다. 다른 실시예들이 이용될 수 있고, 본 발명의 범위 내에서 구조적, 논리적, 및 전기적 변경들이 행해질 수 있다. 따라서, 다음 상세한 설명은 제한적 의미로 취해지지 않아야 하며 본 발명의 범위는 첨부된 청구항들 및 이의 등가물들에 의해서만 정의된다.
도 4는 PCIe 대량 저장 시스템의 일실시예의 블록도이다. 시스템은 호스트 시스템(401)과, AHCI 호스트 버스 어댑터 기능들(404) 및 SATA 대량 저장 장치 기능들(406)을 PCIe 장치에 일체화하는 PCIe 대량 저장 장치(402)로 구성된다.
호스트 시스템(401)은 PCIe 링크 및 SATA 장치와 통신하는 능력을 포함하는 임의의 유형의 시스템일 수 있다. 이러한 호스트 시스템들은 컴퓨터들 또는 제어기들을 포함할 수 있다. 예를 들어, 호스트 시스템(401)은 SATA 대량 저장 장치와 통신하는 능력을 가진 MICROSOFT WINDOWS 운영 시스템을 실행하는 개인용 컴퓨터일 수 있다.
호스트 버스 어댑터(HBA) 기능(404)은 호스트와 SATA 대량 저장 장치(406) 간에 통신을 할 수 있게 하는 인터페이스이다. 일실시예에서, HBA 기능(404)은 호스트로부터의 명령들을 SATA 대량 저장 장치(406)가 이해할 수 있게 하는 하드웨어 및/또는 소프트웨어로 구성된 어드밴스드 호스트 제어 인터페이스(AHCI)이다.
SATA 대량 저장 장치(406)는 고체상태 드라이브(예를 들면, 플래시 메모리 셀들), 광학 디스크 드라이브와 같은 광학 메모리 장치, 컴퓨터 하드 드라이브와 같은 자기 디스크 드라이브, MRAM, 3D 메모리, 혹은 이외 어떤 다른 대량 저장 장치를 포함할 수 있다. 일실시예에서, SATA 대량 저장 장치(406)는 호스트 시스템(401) 내부에 있고 이에 의해 전력을 공급받으며 백본 콘넥터를 통해 컴퓨터 머더보드에 결합된다. 다른 실시예에서, SATA 대량 저장 장치(406)는 호스트 시스템(401) 외부에 있으며 PCIe 칩-칩 상호연결 및 보드간 상호연결 바이어스 카드(cads) 및 콘넥터로 호스트(401)에 결합된다.
PCIe 대량 저장 장치(402)가 호스트 시스템(401)에 연결되었을 때, 장치(402)는 자신을 호스트 시스템(401)에 대량 저장 제어기로서 확인시키며, 부착된 SATA 저장장치와 함께 HBA가 자신을 확인시키는 방법과 유사하게 자신이 AHCI와 맞는 장치임을 확인시킨다. 일단 호스트 시스템(401)이 SATA 장치와 함께 AHCI에 맞는 HBA가 부착된 것으로 판단하면, 호스트 시스템(401)는 PCIe 링크로 PCIe 대량 저장 장치(402)와 통신한다.
도 5는 도 4의 PCIe 대량 저장 장치(402)의 일실시예의 더 상세한 블록도이다. 이 장치(402)는 PCIe-SATA 브리지를 사용하는 중복성(redundancy) 없이 AHCI HBA 및 SATA 대량 저장 장치 기능들을 에뮬레이트한다. 또한, 도 5의 실시예는 물리층들, 데이터 링크층들, 및 전형적으로 중간 데이터의 저장 및 송신 오류들에 기인한 패킷 재시도들을 위해 HBA에서 요구되는 버퍼들뿐만 아니라, 종래 기술의 SATA 직렬화 및 역직렬화를 제거한다.
도 5의 실시예는 PCIe 물리층(PHY)(501)으로 구성된다. PCIe 대량 저장 장치(402)가 디지털 영역에서 동작하는 반면 PCIe 링크가 아날로그 영역에서 동작하기 때문에, PCIe PHY(501)는 2개의 영역간을 변환한다. 즉, PCIe PHY(501)은 PCIe 대량 저장 장치(402)로부터 송신된 데이터에 대해 디지털 신호에서 아날로그 신호로의 변환뿐만 아니라, 수신된 데이터에 대해 아날로그 신호에서 디지털 신호로의 변환을 수행한다.
PCIe PHY(501)은 저장 매체(506)로부터 나가는 데이터의 일시적 저장뿐만 아니라 들어오는 데이터의 일시적 저장을 위한 버퍼들을 포함할 수 있다. PCIe PHY(501)은 송신을 위한 송신기 차동 드라이버와 더불어 병렬-직렬 변환기와, 수신을 위한 차동 수신기 및 직렬-병렬 변환기를 포함한다.
일실시예에서, PCIe PHY(501)는 하드웨어 기능이다. PCIe PHY(501)의 대안적 실시예들은 하드웨어와 소프트웨어를 겸비한다.
PCIe 코어(502)는 패킷 처리를 수행한다. 수송된 데이터를 헤더, 시작/중지 비트들, 및 오류 검출/정정 비트들(예를 들면, CRC)과 같은 패킷의 나머지로부터 제거하기 위해 PCIe 링크로 수신된 데이터 패킷들을 디코딩한다. 또한, PCIe 코어(502)는 저장 매체(506)로부터 데이터가 PCIe 링크를 통해 송신을 위해 PCIe 패킷으로 형성되게 패킷 엔코딩을 수행한다.
PCIe-AHCI 브리지(503)는 PCIe 데이터를 PCIe 코어(502)에서 저장 매체(506)에서 사용하기 위한 SATA 포맷으로 전환한다. 또한, PCIe-AHCI 브리지(503)는 PCIe 코어(502)가 데이터를 송신하기 위해 PCIe 패킷들로 엔코딩할 수 있게 PCIe 코어(502)에서 나중에 사용하기 위해 SATA 포맷으로부터 데이터를 제거한다.
도 6의 블록도에 상세히 도시된 AHCI 엔진(500)은 소프트웨어를 SATA 장치와 통신할 수 있게 하는 하드웨어 메커니즘이다. 이것은 PCIe 대량 저장 장치(402)와 호스트 시스템 메모리 간에 데이터를 전송하기 위해 버스 마스터로서 작용한다. AHCI 엔진(500)과 시스템 메모리 간에 데이터 전송들은 시스템 메모리에 대한 버스 마스터로서 작용하는 AHCI 엔진(500)을 통해 다이렉트 메모리 액세스(DMA)를 사용하여 수행된다.
AHCI HBA 에뮬레이터(510)는 수신된 프레임 정보 구조들로 정보를 통신하기 위해 시스템 메모리의 영역을 이용한다. 시스템 메모리에 위치된 명령 FIS는 매체(520)와 시스템 소프트웨어 간에 통신할 수 있게 AHCI HBA 에뮬레이터(510)에 의해 페치(fetch) 된다.
SATA 장치(504)는 PCIe 대량 저장 장치(402)를 위한 SATA 에뮬레이션을 제공한다. SATA 장치(504)는 PCIe 대량 저장 장치(402)가 시스템 호스트에, PCIe 링크를 통해 호스트에 결합되는 AHCI 대량 저장 제어기로서 보이게 한다. SATA 장치(504)는 매체(520)로부터/에 FIS 트랜잭션들로부터 데이터를 처리하며 AHCI 엔진(500)을 통해 호스트로부터 다른 FIS들을 처리한다. 매체(520)로부터 데이터를 SATA 표준으로 엔코딩하며 SATA 패킷들을 디코딩하며 이를 매체(520)에 의해 사용될 수 있는 포맷으로 변경한다.
AHCI 장치 제어기는 PCIe-AHCI 브리지(503), AHCI 엔진(500), 및 SATA 장치(504)로 구성된다. 이들 층들(500, 503, 504)의 전체 기능은 시스템 메모리와 매체(520) 간에 데이터 이동 엔진으로서 작용하는 것이다. AHCI 장치 제어기는 호스트 CPU 오버헤드를 감소시키며 핫 플러깅, 전력 관리, 및 마스터/슬레이브 에뮬레이션을 수행함이 없이 많은 SATA 장치들에의 액세스와 같은 SATA 특징들을 지원할 수 있다.
매체(520)는 매체 관리자(505) 및 저장 매체 자체(506)로 구성된다. 매체 관리자(505)는 서로 다른 유형들의 저장 매체(506)(예를 들면, 플래시, 광학, 자기)에 의해 요구되는 제어 기능들 및 데이터 관리를 제공한다. 예를 들어, 저장 매체(506)가 고체상태 드라이브(예를 들면, 플래시 메모리 셀들)이었다면, 매체 관리자(505)는 플래시 메모리 셀들을 판독, 기입 및 소거하는데 필요한 각종 제어신호들을 제공할 것이다. 유사하게, 저장 매체(506)가 하드디스크 드라이브이었다면, 매체 관리자(505)는 드라이브 디렉토리 및 드라이브 동작을 위한 다른 오버헤드 타스크들을 유지할 뿐만 아니라 드라이브를 동작시키기 위한 제어신호들을 발생할 것이다.
도 6은 도 5의 AHCI 엔진(500)의 일실시예의 블록도이다. AHCI 엔진(500)은 DMA 기입 엔진(601), DMA 판독 엔진(602), 및 AHCI 레지스터들(603)로 구성된다. AHCI 엔진(500)과의 통신은 시스템 메모리에 및 이로부터 제어 신호 및 데이터 신호들뿐만 아니라 도 5의 PCIe-AHCI 브리지(503)의 PCIe-AHCI 인터페이스 부분에의/로부터의 통신이다.
DMA 기입 엔진(601)은 호스트 판독 요청들에 응하여 DMA 기입 동작을 수행하기 위해 시스템 메모리에 액세스하기 위해 요구되는 DMA 신호들을 발생한다. DMA 기입 엔진(601)은 PCIe 메모리 기입 제어신호들을 브리지(503)에 발생하며 매체 관리자(505) 및 SATA 장치 에뮬레이터(504)를 통해 PCIe 대량 저장 장치의 저장 매체(506)로부터 판독된 데이터를 출력한다.
DMA 판독 엔진(602)은 호스트 기입 기입 요청들에 응하여 DMA 판독 동작을 수행하기 위해 시스템 메모리에 액세스하기 위해 요구되는 DMA 신호들을 발생한다. DMA 판독 엔진(602)은 메모리 판독 제어신호들을 브리지(503)에 발생하며 판독 동작의 결과로서 판독 데이터를 메모리로부터 입력한다. 이어서, DMA 판독 엔진(602)은 SATA 장치 에뮬레이터를 통해 이 데이터를 저장매체에 출력한다.
AHCI 레지스터들(603)은 호스트 레지스터들 및 포트 레지스터들로 구성된다. 호스트 및 포트 레지스터들은 입력된 메모리 기입 제어신호들에 응하여 제어 및 구성 명령 데이터를 저장하기 위해 호스트에 의해 사용된다. 제어 및 구성 명령 데이터는 PCIe 대량 저장 장치의 동작을 구성하고 제어하기 위해 사용된다. 호스트 레지스터들은 PCI 버스 아키텍처에 정의된 표준 PCIe 레지스터들일 수 있다. 포트 레지스터들은 장치의 호스트 제어를 위해 사용될 수 있다. 두 레지스터들은 PCI 구성 공간 레지스터의 AHCI 베이스 어드레스 레지스터(BAR5)에 의해 링크된다.
호스트는 PCIe 대량 저장 장치 포트 어드레스에 메모리 판독/기입 신호들 를 발생함으로써 레지스터들에 액세스한다. 유사하게, 레지스터들(603)로부터의 PCIe 대량 저장 장치 상태 데이터는 판독 신호들의 발생에 의해 호스트 시스템 메모리에 의해 액세스될 수 있다.
AHCI HBA 에뮬레이터(510)는 수신된 프레임 정보 구조들(FIS의)로 정보를 통신하기 위해 시스템 메모리의 영역을 이용한다. FIS를 위한 이 메모리 시스템 레이아웃이 도 7에 도시되었다.
도 7은 DMA 셋업 FIS가 매체로부터 수신되었을 때 AHCI HBA 에뮬레이터(510)가 이를 이 레이아웃의 DFIS 영역(701)에 카피함을 도시한 것이다. PIO 셋업 FIS가 매체로부터 도착하였을 때, AHCI HBA 에뮬레이터(510)는 이를 레이아웃의 PSFIS 영역(702)에 카피한다. D2H(장치 대 HBA) 레지스터 FIS가 매체로부터 수신되었을 때, AHCI HBA 에뮬레이터(510)는 이를 레이아웃의 RFIS 영역(703)에 카피한다. 장치 셋 FIS가 매체로부터 수신되었을 때, AHCI HBA 에뮬레이터(510)는 이를 레이아웃의 SDBFIS 영역(704)에 카피한다. 또한, 도 7의 메모리 레이아웃은 미지의 FIS를 위한 메모리의 영역을 포함한다. 미지의 FIS가 매체로부터 수신되었을 때, AHCI HBA 에뮬레이터(510)는 이를 레이아웃의 UFIS 영역(705)에 카피한다.
도 7의 메모리 레이아웃의 일측을 따라 있는 16진수 어드레스들은 단지 예시 목적을 위한 것이다. FIS 구조의 각각의 영역은 임의의 어떤 크기이어야 할 것이 요구되지 않으며, 따라서 임의의 소정의 어드레스 공간이 할당될 것이 요구되지 않는다.
PCIe 대량 저장 장치는 이 정보를 호스트 시스템에 통신할 수 있게 HBA의 도 7의 메모리 레이아웃을 에뮬레이트한다. 도 5의 SATA 장치 에뮬레이터는 도 5의 AHCI HBA 에뮬레이터 블록을 위한 이들 데이터 구조들을 생성할 수 있다. 또한, 에뮬레이터 블록은 호스트 시스템 FIFO, 호스트 어드레스 포인터들, 및 호스트 데이터 흐름 제어 로직을 포함한다.
도 8은 PCIe 대량 저장 장치와 호스트 간에 통신을 위한 방법의 일실시예 의 흐름도이다. PCIe 대량 저장 장치가 PCIe 링크를 통해 호스트에 연결되었을 때, 전력이 대량 저장 장치에 인가되고 초기화된다. 초기화 동안에, 대량 저장 장치는 장치를 일반 대량 저장 장치로서 취급할 것을 호스트에 지시하는 명령을 호스트에 보낸다(801).
이어서, 호스트는 PCIe 포맷 명령들 및 AHCI 프로토콜을 사용하여, PCIe 링크를 통해, 대량 저장 장치에 명령들을 보낸다(803). 앞에서 기술된 바와 같이, 호스트는 PCIe 대량 저장 장치를 동작을 위해 셋업하고 대량 저장 장치의 동작상태에 관해 레지스터들로부터 상태 데이터를 가져오기 위해서 PCIe 대량 저장 장치의 구성 레지스터들에 구성 명령들을 보낼 수 있다. AHCI HBA 에뮬레이터는 PCIe 포맷의 AHCI 프로토콜을 SATA 포맷으로 그리고 그 역으로도 변환한다(804). PCIe 대량 저장 장치는 PCIe 포맷 명령들 및 데이터에 응답한다(805).
결론
요약하여, PCIe 대량 저장 장치의 하나 이상의 실시예들은 SATA 대량 저장 장치 표준들을 사용하여 PCIe 링크를 통해 대량 저장 장치와 통신하기 위해 대부분의 운영 시스템들(예를 들면, WINDOWS 및 MACINTOSH OSX)에서 가용한 현존의 소프트웨어 스택을 이용한다. PCIe 대량 저장 장치는 SATA HBA를 에뮬레이트하고 호스트가 마치 실제 SATA 대량 저장 장치인양 호스트와 통신할 수 있다. 본 실시예들은 다른 인터페이스 기술들뿐만 아니라 SATA III, PCIe II을 사용할 수 있다.
특정 실시예들이 여기에 예시되고 기술되었을지라도, 동일 목적을 달성하기 위해 계산되는 어떠한 배열이든 도시된 특정 실시예들을 대신할 수 있음을 당업자들은 알 것이다. 발명의 많은 적응들이 당업자들에게 명백할 것이다. 따라서, 이 출원은 발명의 임의의 적응들 또는 변형들도 포함한다. 이 발명은 분명히 다음의 청구항들 및 이들의 등가물들에 의해서만 제한되는 것이다.
Claims (19)
- 대량 저장 장치에 있어서,
PCIe 링크로 SATA 장치를 에뮬레이트하게 구성된 호스트 버스 어댑터; 및
상기 호스트 버스 어댑터에 결합된 것으로, 상기 호스트 버스 어댑터로부터 SATA 명령들에 응답하게 구성된 SATA 저장 장치를 포함하는, 대량 저장 장치. - 청구항 1에 있어서, 상기 SATA 저장 장치는 고체상태 드라이브, 광학 드라이브 또는 자기 디스크 드라이브 중 하나이며, 상기 고체상태 드라이브는 플래시 메모리, MRAM, 혹은 3D 메모리 중 하나로 구성되는, 대량 저장 장치.
- 청구항 1에 있어서, 상기 호스트 버스 어댑터는 어드밴스드 호스트 제어 인터페이스(AHCI) 호스트 버스 어댑터(HBA) 에뮬레이터를 포함하는, 대량 저장 장치.
- 청구항 3에 있어서, 상기 AHCI HBA 에뮬레이터는 호스트 시스템 소프트웨어를 상기 SATA 저장 장치와 인터페이스하게 구성된 하드웨어 인터페이스를 포함하는, 대량 저장 장치.
- 청구항 1에 있어서, 상기 호스트 버스 어댑터는
상기 대량 저장 장치를 상기 PCIe 링크에 인터페이스하게 구성된 PCIe;
상기 PCIe 물리층에 결합되고 PCIe 패킷들을 엔코딩/디코딩하게 구성된 PCIe 코어;
상기 PCIe 코어에 결합되고, PCIe 데이터를 SATA 포맷 데이터로 그리고 SATA 포맷 데이터를 PCIe 데이터로 전환하게 구성된, PCIe-AHCI 브리지;
PCIe-AHCI 브리지에 결합되고, 호스트 메모리와 상기 PCIe 대량 저장 장치간에 버스 마스터로서 작용하게 구성된 AHCI 엔진; 및
상기 AHCI 엔진에 결합되고, 상기 PCIe 대량 저장 장치를 위해 SATA 에뮬레이션을 제공하게 구성된 SATA 장치를 포함하는, 대량 저장 장치. - 청구항 5에 있어서, 상기 PCIe 물리층은 PCIe 데이터를 PCIe 링크 데이터 레이트에서 상기 PCIe 대량 저장 장치를 위한 낮은 데이터 레이트로 낮게 변환하고 SATA 데이터를 상기 낮은 데이터 레이트에서 상기 PCIe 링크 데이터 레이트로 높게 변환하게 구성된, 대량 저장 장치.
- 청구항 5에 있어서, 상기 AHCI 엔진은 상기 호스트 메모리와 상기 PCIe 대량 저장 장치 간에 다이렉트 메모리 액세스 동작들을 수행하는, 대량 저장 장치.
- 청구항 5에 있어서, 상기 PCIe 물리층은 아날로그 PCIe 신호들을 디지털 SATA 신호들로 변환하게 구성되고, 상기 PCIe 물리층은 디지털 SATA 신호들을 아날로그 PCIe 신호들로 변환하게 더욱 구성된, 대량 저장 장치.
- 청구항 5에 있어서, 상기 PCIe 물리층은 수신 및 출력 데이터의 일시적 저장을 위한 버퍼들을 더 포함하는, 대량 저장 장치.
- 청구항 5에 있어서, 상기 AHCI 엔진은
호스트 메모리에 다이렉트 메모리 액세스 기입 동작들을 수행하게 수행된 다이렉트 메모리 액세스 기입 엔진;
상기 호스트 메모리로부터 다이렉트 메모리 액세스 판독 동작들을 수행하게 구성된 다이렉트 메모리 액세스 판독 엔진; 및
상기 PCIe 대량 저장 장치를 구성하고 제어하는 AHCI 레지스터들을 포함하는, 대량 저장 장치. - 청구항 5에 있어서, 상기 PCIe-AHCI 브리지, 상기 AHCI 엔진, 및 상기 SATA 장치는 호스트 메모리와 상기 저장 매체 간에 데이터 이동을 제공하는 AHCI 장치 제어기를 포함하는, 대량 저장 장치.
- PCIe 대량 저장 장치가 SATA 호스트 버스 어댑터임을 호스트에 통고하는 단계; SATA 포맷으로 통신을 수신하는 단계; 상기 SATA 포맷을 에뮬레이트하는 단계를 포함하는, PCIe 대량 저장 장치를 동작시키는 방법.
- 청구항 12에 있어서, PCIe 대량 저장 장치가 SATA 호스트 버스 어댑터임을 호스트에 통고하는 상기 단계는 PCIe 인터페이스를 통해 상기 호스트에 결합된 PCIe 대량 저장 장치가 SATA 호스트 버스 어댑터임을 통고하는 단계를 포함하는, 방법.
- 청구항 12에 있어서, SATA 포맷으로 된 구성 데이터를 상기 PCIe 대량 저장 장치 내 구성 레지스터들에 수신하는 단계를 더 포함하는, 방법.
- 청구항 12에 있어서, 상기 PCIe 대량 저장 장치의 동작 상태에 관한 상태 데이터를 SATA 포맷으로 송신하는 단계를 더 포함하는, 방법.
- PCIe 대량 저장 시스템에 있어서,
상기 대량 저장 시스템의 동작들을 제어하게 구성된 호스트 시스템; 및
PCIe 인터페이스를 통해 상기 호스트 시스템에 결합된 PCIe 대량 저장 장치를 포함하고,
상기 대량 저장 장치는,
상기 호스트 시스템으로 SATA 장치를 에뮬레이트하게 구성된 호스트 버스 어댑터; 및
상기 호스트 버스 어댑터에 결합되고 상기 호스트 시스템으로부터 SATA 명령들에 응답하게 구성된 SATA 대량 저장 장치, PCIe 대량 저장 시스템. - 청구항 16에 있어서, 상기 호스트 시스템은 SATA 포맷으로 통신하게 구성된 소프트웨어를 포함하는, PCIe 대량 저장 시스템.
- 청구항 16에 있어서, 상기 호스트 시스템은 PCIe 링크 회로를 구비한 컴퓨터이며, 상기 컴퓨터는 상기 PCIe 인터페이스로 SATA 대량 저장 장치와 통신하는 능력을 가진 운영 시스템을 포함하는, PCIe 대량 저장 시스템.
- 청구항 16에 있어서, 상기 PCIe 대량 저장 장치는 PCIe-SATA 브리지 없이 상기 호스트 시스템에 결합되는, PCIe 대량 저장 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/235,180 | 2008-09-22 | ||
US12/235,180 US8225019B2 (en) | 2008-09-22 | 2008-09-22 | SATA mass storage device emulation on a PCIe interface |
PCT/US2009/055652 WO2010033375A2 (en) | 2008-09-22 | 2009-09-02 | Sata mass storage device emulation on a pcie interface |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110046552A true KR20110046552A (ko) | 2011-05-04 |
KR101181150B1 KR101181150B1 (ko) | 2012-09-17 |
Family
ID=42038761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117006597A KR101181150B1 (ko) | 2008-09-22 | 2009-09-02 | PCIe 인터페이스 상에서 SATA 대량 저장 장치 에뮬레이션 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8225019B2 (ko) |
EP (1) | EP2329386A4 (ko) |
KR (1) | KR101181150B1 (ko) |
CN (1) | CN102160044B (ko) |
TW (1) | TWI452469B (ko) |
WO (1) | WO2010033375A2 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140067403A (ko) * | 2012-11-26 | 2014-06-05 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법 |
KR20160147373A (ko) * | 2015-06-15 | 2016-12-23 | 한국전자통신연구원 | 광 신호를 이용한 sata 호스트 버스 어댑터 및 sata 저장소 연결 방법 |
Families Citing this family (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201030526A (en) * | 2009-02-09 | 2010-08-16 | Prolific Technology Inc | Bridge, data compressing mthod thereof and computer system applying the same |
US8918573B2 (en) | 2010-06-23 | 2014-12-23 | International Business Machines Corporation | Input/output (I/O) expansion response processing in a peripheral component interconnect express (PCIe) environment |
US8677180B2 (en) | 2010-06-23 | 2014-03-18 | International Business Machines Corporation | Switch failover control in a multiprocessor computer system |
US8656228B2 (en) | 2010-06-23 | 2014-02-18 | International Business Machines Corporation | Memory error isolation and recovery in a multiprocessor computer system |
US8645606B2 (en) | 2010-06-23 | 2014-02-04 | International Business Machines Corporation | Upbound input/output expansion request and response processing in a PCIe architecture |
US8416834B2 (en) | 2010-06-23 | 2013-04-09 | International Business Machines Corporation | Spread spectrum wireless communication code for data center environments |
US8417911B2 (en) | 2010-06-23 | 2013-04-09 | International Business Machines Corporation | Associating input/output device requests with memory associated with a logical partition |
US8671287B2 (en) | 2010-06-23 | 2014-03-11 | International Business Machines Corporation | Redundant power supply configuration for a data center |
US8615586B2 (en) | 2010-06-23 | 2013-12-24 | International Business Machines Corporation | Discovery of logical images at storage area network endpoints |
US8645767B2 (en) | 2010-06-23 | 2014-02-04 | International Business Machines Corporation | Scalable I/O adapter function level error detection, isolation, and reporting |
US8745292B2 (en) * | 2010-06-23 | 2014-06-03 | International Business Machines Corporation | System and method for routing I/O expansion requests and responses in a PCIE architecture |
US8615622B2 (en) | 2010-06-23 | 2013-12-24 | International Business Machines Corporation | Non-standard I/O adapters in a standardized I/O architecture |
JP5966243B2 (ja) * | 2010-12-20 | 2016-08-10 | 富士通株式会社 | ストレージ装置及びストレージ装置の制御方法 |
US8874820B2 (en) * | 2010-12-28 | 2014-10-28 | Silicon Image, Inc. | Mechanism for facilitating a configurable port-type peripheral component interconnect express/serial advanced technology attachment host controller architecture |
US20120254501A1 (en) * | 2011-03-28 | 2012-10-04 | Byungcheol Cho | System architecture based on flash memory |
US8621113B2 (en) * | 2011-05-31 | 2013-12-31 | Micron Technology, Inc. | Apparatus including host bus adapter and serial attachment programming compliant device and related methods |
US8601198B2 (en) * | 2011-06-30 | 2013-12-03 | Intel Corporation | Controllable transaction synchronization for merging peripheral devices |
CN102393838B (zh) * | 2011-07-04 | 2015-03-11 | 华为技术有限公司 | 数据处理方法及装置、pci-e总线系统、服务器 |
US8930602B2 (en) | 2011-08-31 | 2015-01-06 | Intel Corporation | Providing adaptive bandwidth allocation for a fixed priority arbiter |
US9021156B2 (en) | 2011-08-31 | 2015-04-28 | Prashanth Nimmala | Integrating intellectual property (IP) blocks into a processor |
US8929373B2 (en) | 2011-09-29 | 2015-01-06 | Intel Corporation | Sending packets with expanded headers |
US8775700B2 (en) | 2011-09-29 | 2014-07-08 | Intel Corporation | Issuing requests to a fabric |
US8713234B2 (en) * | 2011-09-29 | 2014-04-29 | Intel Corporation | Supporting multiple channels of a single interface |
US8713240B2 (en) | 2011-09-29 | 2014-04-29 | Intel Corporation | Providing multiple decode options for a system-on-chip (SoC) fabric |
US8805926B2 (en) | 2011-09-29 | 2014-08-12 | Intel Corporation | Common idle state, active state and credit management for an interface |
US8711875B2 (en) | 2011-09-29 | 2014-04-29 | Intel Corporation | Aggregating completion messages in a sideband interface |
US8874976B2 (en) | 2011-09-29 | 2014-10-28 | Intel Corporation | Providing error handling support to legacy devices |
US9053251B2 (en) | 2011-11-29 | 2015-06-09 | Intel Corporation | Providing a sideband message interface for system on a chip (SoC) |
KR101925870B1 (ko) | 2012-03-21 | 2018-12-06 | 삼성전자주식회사 | Ssd 콘트롤러 및 그의 제어 방법 |
US9141152B2 (en) | 2012-05-04 | 2015-09-22 | Hewlett-Packard Devlopment Company, L.P. | Interface card mount |
US20130346532A1 (en) * | 2012-06-21 | 2013-12-26 | Microsoft Corporation | Virtual shared storage in a cluster |
US8745296B2 (en) | 2012-10-02 | 2014-06-03 | Intel Corporation | Serial storage protocol compatible frame conversion, at least in part being compatible with SATA and one packet being compatible with PCIe protocol |
KR101988287B1 (ko) * | 2012-11-26 | 2019-06-12 | 삼성전자주식회사 | 저장 장치 및 그것을 포함하는 컴퓨팅 시스템, 및 그것의 데이터 전송 방법 |
KR101934519B1 (ko) | 2012-11-26 | 2019-01-02 | 삼성전자주식회사 | 저장 장치 및 그것의 데이터 전송 방법 |
KR102107723B1 (ko) | 2012-12-03 | 2020-05-07 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법 |
CN103150129B (zh) * | 2013-04-02 | 2015-09-16 | 哈尔滨工业大学 | PXIe接口Nand Flash数据流盘存取加速方法 |
US10404520B2 (en) | 2013-05-29 | 2019-09-03 | Microsoft Technology Licensing, Llc | Efficient programmatic memory access over network file access protocols |
US9641614B2 (en) | 2013-05-29 | 2017-05-02 | Microsoft Technology Licensing, Llc | Distributed storage defense in a cluster |
US9141563B2 (en) * | 2013-09-11 | 2015-09-22 | Kabushiki Kaisha Toshiba | Memory system |
US9069486B2 (en) | 2013-09-11 | 2015-06-30 | Kabushiki Kaisha Toshiba | Data transfer control device and data storage device |
KR101547317B1 (ko) * | 2013-09-30 | 2015-08-26 | 주식회사 유니테스트 | 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템 |
US10353633B2 (en) * | 2013-12-19 | 2019-07-16 | Sony Interactive Entertainment LLC | Mass storage virtualization for cloud computing |
WO2015126383A1 (en) * | 2014-02-19 | 2015-08-27 | Hewlett-Packard Development Company, L.P. | Adapter for transmitting signals |
CN106030552A (zh) * | 2014-04-21 | 2016-10-12 | 株式会社日立制作所 | 计算机系统 |
TWI579762B (zh) * | 2014-05-06 | 2017-04-21 | 瑞昱半導體股份有限公司 | 固態硬碟控制電路及相關的固態硬碟裝置與固態硬碟存取系統 |
CN105094687B (zh) * | 2014-05-13 | 2018-10-26 | 瑞昱半导体股份有限公司 | 固态硬盘控制电路及固态硬盘装置与固态硬盘存取系统 |
US20150347324A1 (en) * | 2014-05-30 | 2015-12-03 | S2C Inc. | System and Method for Shared Memory for FPGA Based Applications |
US9990313B2 (en) | 2014-06-19 | 2018-06-05 | Hitachi, Ltd. | Storage apparatus and interface apparatus |
US9804989B2 (en) | 2014-07-25 | 2017-10-31 | Micron Technology, Inc. | Systems, devices, and methods for selective communication through an electrical connector |
KR102255216B1 (ko) | 2014-11-20 | 2021-05-24 | 삼성전자주식회사 | Pci 장치와 이를 포함하는 pci 시스템 |
CN107408090B (zh) * | 2015-03-27 | 2021-03-26 | 英特尔公司 | 输入/输出控制器访问通道的动态配置 |
US9792048B2 (en) | 2015-06-22 | 2017-10-17 | Western Digital Technologies, Inc. | Identifying disk drives and processing data access requests |
EP3334197B1 (en) * | 2015-08-31 | 2020-01-15 | Huawei Technologies Co., Ltd. | Method and system for acquiring identification code of terminal |
US9760513B2 (en) | 2015-09-22 | 2017-09-12 | Cisco Technology, Inc. | Low latency efficient sharing of resources in multi-server ecosystems |
TWI566103B (zh) * | 2015-11-16 | 2017-01-11 | 宇瞻科技股份有限公司 | PCIe橋接器之轉換裝置及其方法 |
TWI582597B (zh) * | 2016-12-07 | 2017-05-11 | 英業達股份有限公司 | 硬體資源共用系統及連線橋接平台的操作方法 |
US10911261B2 (en) | 2016-12-19 | 2021-02-02 | Intel Corporation | Method, apparatus and system for hierarchical network on chip routing |
US10846126B2 (en) | 2016-12-28 | 2020-11-24 | Intel Corporation | Method, apparatus and system for handling non-posted memory write transactions in a fabric |
US10338838B2 (en) | 2017-03-24 | 2019-07-02 | Samsung Electronics Co., Ltd. | Multi-mode NVMe over fabrics device for supporting CAN (controller area network) bus or SMBus interface |
US10534738B2 (en) * | 2018-01-17 | 2020-01-14 | Western Digital Technologies, Inc. | Host bus adaptor with configurable interface |
US20200081628A1 (en) * | 2018-09-12 | 2020-03-12 | Dell Products, Lp | Apparatus and Method for Monitoring Insertion and Removal of Devices |
CN109446015B (zh) * | 2018-10-26 | 2022-05-27 | 北京计算机技术及应用研究所 | 一种NVMe原型仿真验证结构 |
CN109753459A (zh) * | 2018-12-07 | 2019-05-14 | 天津津航计算技术研究所 | 一种大容量数据记录器 |
CN111258504B (zh) * | 2020-01-15 | 2023-05-30 | 西安电子科技大学 | 一种基于sata接口固态硬盘的存储控制系统 |
US11150842B1 (en) | 2020-04-20 | 2021-10-19 | Western Digital Technologies, Inc. | Dynamic memory controller and method for use therewith |
US11281399B2 (en) | 2020-06-24 | 2022-03-22 | Western Digital Technologies, Inc. | Dual-interface storage system and method for use therewith |
US11442665B2 (en) | 2020-12-04 | 2022-09-13 | Western Digital Technologies, Inc. | Storage system and method for dynamic selection of a host interface |
CN113051196B (zh) * | 2021-03-26 | 2021-11-02 | 武汉理工大学 | 一种基于固态硬盘层差异特征的请求调度算法 |
US20230244613A1 (en) * | 2022-01-28 | 2023-08-03 | Seagate Technology Llc | Scalable storage using nvme communication |
CN114138702B (zh) * | 2022-01-29 | 2022-06-14 | 阿里云计算有限公司 | 计算系统、pci设备管理器及其初始化方法 |
CN116700604B (zh) * | 2023-02-20 | 2023-11-14 | 无锡众星微系统技术有限公司 | 一种基于sas hba的数据传输方法 |
CN117407348B (zh) * | 2023-12-15 | 2024-03-22 | 成都电科星拓科技有限公司 | PCIe自适应转接方法、装置、存储介质及电子设备 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5909559A (en) * | 1997-04-04 | 1999-06-01 | Texas Instruments Incorporated | Bus bridge device including data bus of first width for a first processor, memory controller, arbiter circuit and second processor having a different second data width |
US7517231B2 (en) * | 2004-11-16 | 2009-04-14 | Super Talent Electronics, Inc. | Solid state drive (SSD) with open top and bottom covers |
US6889380B1 (en) * | 2000-06-30 | 2005-05-03 | Intel Corporation | Delaying loading of host-side drivers for cluster resources to avoid communication failures |
US7308521B1 (en) * | 2001-11-16 | 2007-12-11 | Marvell International Ltd. | Multi-port communications integrated circuit and method for facilitating communication between a central processing chipset and multiple communication ports |
JP4351071B2 (ja) * | 2002-04-03 | 2009-10-28 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | Ata/sata複合コントローラ |
US6931457B2 (en) * | 2002-07-24 | 2005-08-16 | Intel Corporation | Method, system, and program for controlling multiple storage devices |
US6781826B1 (en) * | 2002-12-24 | 2004-08-24 | Western Digital Technologies, Inc. | External disk drive compatible with a serial advanced technology attachment (SATA) standard including a SATA compatible shielded cable capable of receiving power signals from a host |
US7246192B1 (en) * | 2003-01-10 | 2007-07-17 | Marvell International Ltd. | Serial/parallel ATA controller and converter |
US7085859B2 (en) * | 2003-05-14 | 2006-08-01 | International Business Machines Corporation | Method, apparatus and program storage device for automatically presenting status from a host bus adapter until an error is detected |
US8301809B2 (en) * | 2003-07-02 | 2012-10-30 | Infortrend Technology, Inc. | Storage virtualization computer system and external controller thereof |
US20060161733A1 (en) * | 2005-01-19 | 2006-07-20 | Emulex Design & Manufacturing Corporation | Host buffer queues |
US7376782B2 (en) * | 2005-06-29 | 2008-05-20 | Intel Corporation | Index/data register pair for indirect register access |
US8149854B2 (en) * | 2005-06-30 | 2012-04-03 | Intel Corporation | Multi-threaded transmit transport engine for storage devices |
US7970953B2 (en) * | 2005-06-30 | 2011-06-28 | Intel Corporation | Serial ATA port addressing |
US7929486B2 (en) * | 2005-11-22 | 2011-04-19 | Broadcom Corporation | Programmable wireless access point supporting configuration profile updating |
US20070214277A1 (en) * | 2006-03-07 | 2007-09-13 | Ahmed Ali U | Peer-to-peer network communications using SATA/SAS technology |
US7464228B2 (en) * | 2006-05-31 | 2008-12-09 | Dell Products L.P. | System and method to conserve conventional memory required to implement serial ATA advanced host controller interface |
CA2672100A1 (en) * | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. | Apparatus, system, and method for solid-state storage as cache for high-capacity, non-volatile storage |
US20080294421A1 (en) * | 2007-05-23 | 2008-11-27 | Kwok-Yan Leung | Hard Disk Drive Adapter For Emulating Hard Disk Drive Interface |
US7925802B2 (en) * | 2007-06-21 | 2011-04-12 | Seamicro Corp. | Hardware-based virtualization of BIOS, disks, network-interfaces, and consoles using a direct interconnect fabric |
US20090055157A1 (en) * | 2007-08-23 | 2009-02-26 | Beyond Blades Ltd. | Server Having Remotely Manageable Emulated Functions |
-
2008
- 2008-09-22 US US12/235,180 patent/US8225019B2/en not_active Expired - Fee Related
-
2009
- 2009-09-02 KR KR1020117006597A patent/KR101181150B1/ko not_active IP Right Cessation
- 2009-09-02 CN CN200980137046.5A patent/CN102160044B/zh not_active Expired - Fee Related
- 2009-09-02 EP EP20090814986 patent/EP2329386A4/en not_active Ceased
- 2009-09-02 WO PCT/US2009/055652 patent/WO2010033375A2/en active Application Filing
- 2009-09-09 TW TW098130434A patent/TWI452469B/zh not_active IP Right Cessation
-
2012
- 2012-06-27 US US13/534,131 patent/US8478916B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140067403A (ko) * | 2012-11-26 | 2014-06-05 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법 |
KR20160147373A (ko) * | 2015-06-15 | 2016-12-23 | 한국전자통신연구원 | 광 신호를 이용한 sata 호스트 버스 어댑터 및 sata 저장소 연결 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN102160044A (zh) | 2011-08-17 |
EP2329386A2 (en) | 2011-06-08 |
US8478916B2 (en) | 2013-07-02 |
US20100077117A1 (en) | 2010-03-25 |
US8225019B2 (en) | 2012-07-17 |
WO2010033375A3 (en) | 2010-05-27 |
KR101181150B1 (ko) | 2012-09-17 |
TW201017426A (en) | 2010-05-01 |
TWI452469B (zh) | 2014-09-11 |
EP2329386A4 (en) | 2012-08-08 |
WO2010033375A2 (en) | 2010-03-25 |
CN102160044B (zh) | 2015-04-29 |
US20120271974A1 (en) | 2012-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101181150B1 (ko) | PCIe 인터페이스 상에서 SATA 대량 저장 장치 에뮬레이션 | |
JP6243469B2 (ja) | 低電力物理ユニットのロード/ストア通信プロトコルへの提供 | |
US9830292B2 (en) | Architected protocol for changing link operating mode | |
US9390046B2 (en) | Controlling a physical link of a first protocol using an extended capability structure of a second protocol | |
US9430432B2 (en) | Optimized multi-root input output virtualization aware switch | |
US8924620B2 (en) | Providing a consolidated sideband communication channel between devices | |
US9141577B2 (en) | Optimized link training and management mechanism | |
US7755791B2 (en) | Image processing apparatus and image forming apparatus | |
US20180210857A1 (en) | Method, apparatus and system for configuring a protocol stack of an integrated circuit chip | |
US9910814B2 (en) | Method, apparatus and system for single-ended communication of transaction layer packets | |
US9280508B1 (en) | Apparatus and method for interoperability between SAS and PCI express | |
JP4824422B2 (ja) | 制御装置、画像処理システムおよびデータ転送経路切替方法 | |
CN117435538A (zh) | 一种PCIe转SRIO的桥接系统 | |
US20080057775A1 (en) | Sata-interfaced host bridge device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20150827 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |