PCIe接口上的SATA大容量存储装置仿真的制作方法

文档序号:6594938阅读:643来源:国知局
专利名称:PCIe接口上的SATA大容量存储装置仿真的制作方法
技术领域
本发明一般来说涉及存储器装置,且在特定实施例中本发明涉及SATA大容量存储装置。
背景技术
外围组件互连(PCI)标准描述用于将外围装置连接到计算机母板的计算机总线。 这些外围装置通常采取扩展卡或其它此种装置的形式。PCI标准涵盖所述总线的物理大小、 电特性、总线计时及经由所述总线进行通信所需的协议。基本PCI标准具有阻止其提供当前及未来几代I/O及存储装置所需要的带宽及特征的一些缺点。一个此种问题是基本PCI标准的高度并行的总线共享架构,所述架构限制其总线速度及可缩放性。此外,基本PCI标准的简单、载入-存储、基于扁平存储器的通信模型不如经路由、基于包的模型稳健及可扩展。PCI高速(PCIe)(计算机扩展卡接口格式)经设计以解决基本PCI标准的一些问题。不同于PCI接口,并非为总线,PCIe接口经结构化而围绕若干对点对点串行(1位)单向链路(也称作巷道)。此与PCI标准相反,PCI标准为其中所有装置共享同一双向、32位 (或64位)并行信号路径的基于总线的系统。在PCIe的点对点总线拓扑中,共享开关取代PCI的共享总线作为单个共享资源, 所有装置通过所述单个共享资源进行通信。不同于在共享总线拓扑中(其中装置必须在其自身中针对总线的使用共同地仲裁),PCIe系统中的每一装置具有对开关的直接且排他性存取。换句话说,每一 PCIe装置连接到其自己的专用巷道。PCIe实施串行点对点类型互连以用于两个装置之间的通信。多个PCIe装置经由使用开关互连,此意指实际上可将大量装置一起连接于系统中。点对点互连意味着链路上的有限电负载允许发射及接收频率以缩放到高得多的数量。当前PCIe发射及接收数据速率为2. 5吉位/秒。两个装置之间的串行互连导致每一装置封装的较少引脚,此降低PCIe 芯片及板设计成本且降低板设计复杂性。PCIe性能也是高度可缩放的。此通过以下方式实现基于对所述互连的通信性能要求实施针对每一互连的引脚及信号巷道的可缩放数量。PCIe实施基于开关的技术以互连大量装置。使用基于包的通信协议来实现经由串行互连的通信。服务质量(QM)特征为不同应用提供差异化的发射性能。热插拔(Hot Plug)/热抽换(Hot Swap)支持实现了“始终接通”式系统。先进电力管理特征允许针对低电力移动应用进行设计。RAS (可靠、可用及可维护)错误处置特征使PCI高速适用于稳健的高端服务器应用。使用基于包的消息收发而非边带信号在带内实现热插拔、电力管理、错误处置及中断信令。此保持装置引脚计数较低且降低系统成本。大容量存储装置(即,固态快闪存储器、光学驱动器、磁盘驱动器)通常使用串行先进技术附接(SATA)标准来与主机计算机通信。实际上,SATA标准主要被设计用于在主机计算机与大容量存储装置之间以1. 5到3. OGbps的数据速率传送数据。SATA胜过较旧的并行ATA接口的主要优点是更快的数据传送、在操作(热抽换)时移除或添加装置的能力,及具有更严格数据完整性检查的更可靠操作。为使SATA大容量存储装置连接到主机计算机的PCIe连接,使用PCIe/SATA桥接器控制器。所述桥接器控制器仿真SATA主机总线适配器(HBA)。图1图解说明使用PCIe/ SATA桥接器100连接到SATA大容量存储装置102的典型现有技术计算机主机系统101的框图。桥接器100并入有先进主机控制器接口(AHCI),所述先进主机控制器接口为允许软件与SATA装置102通信的硬件机构。AHCI为PCIe类装置,其充当主机计算机的系统存储器与SATA装置102之间的数据移动引擎。图2图解说明典型现有技术PCIe/SATA桥接器控制器100的框图。桥接器控制器 100由PCIe PHY块201组成,PCIe PHY块201提供从PCIe链路的模拟性质到桥接器控制器100的数字环境的转换。PHY块201还将约2. 5Gbps数据速率降频转换到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. OGbps数据速率的发射电路组成。图3图解说明典型现有技术SATA大容量存储装置102的框图。存储媒体306使用与上述桥接器控制器100相同的层301到305(但以相反次序)介接到SATA总线。不仅这些冗余功能需要实施SATA大容量存储装置102上的额外占用面积,从主机到大容量存储装置的通信所需的时间也由于从PCIe/SATA去往存储媒体306所必需的冗余转换而增加。出于上文所陈述的原因且出于所属领域的技术人员在阅读及理解本说明书后将明了的下文所陈述的其它原因,在此项技术中需要一种经由PCIe进行通信以减少与使用 HBA及SATA存储装置相关联的延迟及成本的大容量存储装置。


图1显示SATA装置到主机系统的典型现有技术连接的框图。图2显示典型现有技术PCIe/SATA桥接器控制器的框图。图3显示典型现有技术SATA存储装置的框图。图4显示PCIe大容量存储装置系统的一个实施例的框图。图5显示根据图4的系统的PCIe大容量存储装置的一个实施例的框图。图6显示根据图5的实施例的AHCI引擎的一个实施例的框图。图7显示用于图6的实施例中的帧信息结构的一个实施例。图8显示用于主机与PCIe大容量存储装置之间的通信的方法的一个实施例的流程图。
具体实施例方式在本发明的以下详细描述中,参照形成本发明的一部分且其中以图解说明的方式显示可实践本发明的具体实施例的附图。在所述图式中,在所有数个视图中所有相同编号描述大致类似的组件。充分详细地描述这些实施例以使所属领域的技术人员能够实践本发明。所属领域的技术人员可利用其它实施例且可在不背离本发明范围的前提下做出结构、 逻辑及电改动。因此,不应以限制性意义理解以下详细描述,且本发明的范围仅由所附权利要求书及其等效内容界定。图4图解说明PCIe大容量存储系统的一个实施例的框图。所述系统由主机系统 401及PCIe大容量存储装置402组成,所述PCIe大容量存储装置将AHCI主机总线适配器功能404及SATA大容量存储装置功能406集成到PCIe装置中。主机系统401可为包含PCIe链路及与SATA装置通信的能力的任一类型的系统。 此类主机系统可包括计算机或控制器。举例来说,主机系统401可为运行具有与SATA大容量存储装置通信的能力的微软窗口(MICROSOFT WINDOWS)操作系统的个人计算机。主机总线适配器(HBA)功能404为实现主机与SATA大容量存储装置406之间的通信的接口。在一个实施例中,HBA功能404为由使来自主机的命令能够被SATA大容量存储装置406所理解的硬件及/或软件组成的先进主机控制接口(AHCI)。 SATA大容量存储装置406可包括固态驱动器(例如,快闪存储器单元)、例如光盘驱动器的光学存储器装置、例如计算机硬驱动器的磁盘驱动器、MRAM、3D存储器或任一其它大容量存储装置。在一个实施例中,SATA大容量存储装置406在主机系统401内部且由主机系统401供电且经由底板连接器耦合到计算机母板。在另一实施例中,SATA大容量存储装置406在主机系统401外部且经由PCIe芯片/芯片互连及板/板互连导通孔卡及连接器耦合到主机401。当PCIe大容量存储装置402连接到主机系统401时,装置402向主机系统401识别自身作为大容量存储控制器且其为AHCI依从装置,类似于具有经附接SATA存储装置的 HBA识别自身的方式。一旦主机系统401认为附接了具有SATA装置的AHCI依从HBA,主机系统401即经由PCIe链路与PCIe大容量存储装置402通信。图5图解说明图4的PCIe大容量存储装置402的一个实施例的更详细框图。此装置402在无使用PCIe/SATA桥接器的冗余的情况下仿真AHCI HBA及SATA大容量存储装置功能。图5的实施例还消除现有技术的SATA串行化及解串行化以及物理层、数据链路层及由于发射错误而在HBA中为存储中间数据及包再试通常所需的缓冲器。图5的实施例由PCIe物理层(PHY) 501组成。由于PCIe链路在模拟域中操作而 PCIe大容量存储装置402在数字域中操作,因此PCIe PHY 501在所述两个域之间转换。换句话说,PCIe PHY 501对所接收的数据执行模拟信号到数字信号转换以及针对从PCIe大容量存储装置402发射的数据执行数字信号到模拟信号转换。PCIe PHY 501可包括用于临时存储传入数据以及临时存储来自存储媒体506的传出数据的缓冲器。PCIe PHY 501包括用于发射的并行/串行转换器连同发射器差分驱动器以及用于接收的差分接收器及串行/并行转换器。在一个实施例中,PCIE PHY 501为硬件功能。PCIe PHY 501的替代实施例为硬件
及软件两者。PCIe核心502执行包处理。对经由PCIe链路接收的数据包进行解码以移除来自包的剩余部分(例如,标头、开始/停止位及错误检测/校正位(例如,CRC))的所输送的数据。PCIe核心502还执行包编码以使得来自存储媒体506的数据形成为用于经由PCIe 链路发射的PCIe包。
PCIe/AHCI桥接器503将来自PCIe核心502的PCIe数据翻译为供存储媒体506 使用的SATA格式。PCIe/AHCI桥接器503还从稍后供PCIe核心502使用的SATA格式移除数据以使得PCIe核心502可将数据编码为用于发射的PCIe包。更详细地图解说明于图6的框图中的AHCI引擎500为允许软件与SATA装置通信的硬件机构。AHCI引擎500充当总线主控器以在PCIe大容量存储装置402与主机系统存储器之间传送数据。经由充当到系统存储器的总线主控器的AHCI引擎500使用直接存储器存取(DMA)来执行AHCI引擎500与系统存储器之间的数据传送。AHCI HBA仿真器510使用系统存储器的区域以在所接收的帧信息结构上传递信息。位于系统存储器中的命令FIS由AHCI HBA仿真器510提取以提供媒体520与系统软件之间的通信。SATA装置504为PCIe大容量存储装置402提供SATA仿真。SATA装置504使PCIe 大容量存储装置402在系统主机看来为经由PCIe链路耦合到所述主机的AHCI大容量存储控制器。SATA装置504处置来自/去往媒体520的来自FIS事务的数据且经由AHCI弓丨擎 500处置来自主机的其它FIS的数据。SATA装置504将来自媒体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产生到桥接器503的PCIe存储器写入控制信号且经由媒体管理器505及SATA装置仿真器504输出从PCIe大容量存储装置的存储媒体506读取的数据。DMA读取引擎602负责响应于主机写入请求而产生存取系统存储器所需的DMA信号以执行DMA读取操作。DAM读取引擎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的存储器布局的侧的十六进制地址是仅出于图解说明的目的。不需要FIS 结构的每一区域为任意特定大小且因此不需要其指派有任一预定的地址空间。PCIe大容量存储装置仿真HBA的图7的存储器布局以使得其可将所述信息传递到主机系统。图5的SATA装置仿真器可产生用于图5的AHCI HBA仿真器块的这些数据结构。所述仿真器块还包括主机系统FIFO、主机地址指针及主机数据流控制逻辑。图8图解说明用于PCIe大容量存储装置与主机之间的通信的方法的一个实施例的流程图。当所述PCIe大容量存储装置经由PCIe链路连接到主机时,向所述大容量存储装置施加电力且其被初始化。在初始化期间,所述大容量存储装置向所述主机发送命令,所述命令指示所述主机将所述装置视为一般大容量存储装置801。然后所述主机使用PCIe格式命令及AHCI协议经由所述PCIe链路向所述大容量存储装置发送命令803。如先前所描述,所述主机可向所述PCIe大容量存储装置的配置寄存器发送配置命令以对其进行设置以用于操作且从所述寄存器检索关于所述大容量存储装置的操作状态的状态数据。AHCI HBA仿真器将呈PCIe格式的AHCI协议变换为SATA格式且反之亦然804。所述PCIe大容量存储装置以PCIe格式命令及数据来响应于所述主机命令805。结论总来说的,PCIe大容量存储装置的一个或一个以上实施例利用可用于大多数操作系统(例如,窗口(WINDOWS)及麦金托什OSX (MACINTOSH OSX))的现有软件堆栈以使用 SATA大容量存储装置标准经由PCIe链路与大容量存储装置通信。PCIe大容量存储装置可仿真SATA HBA且与主机通信如同其是实际SATA大容量存储装置。本实施例可使用SATA III>PCIe II以及其它接口技术。尽管本文已图解说明并描述了具体实施例,但所属领域的技术人员将了解任何旨在实现相同目的的配置可替代所示的具体实施例。所属领域的技术人员将明了本发明的许多修改。因此,此申请案打算涵盖本发明的任何修改或变化。明确打算本发明仅由以上权利要求书及其等效内容限定。
权利要求
1.一种大容量存储装置,其包含主机总线适配器,其经配置以经由PCIe链路仿真SATA装置;及SATA存储装置,其耦合到所述主机总线适配器,经配置以响应于来自所述主机总线适配器的SATA命令。
2.根据权利要求1所述的装置,其中所述SATA存储装置为固态驱动器、光学驱动器或磁盘驱动器中的一者,且所述固态驱动器由快闪存储器、MRAM或3D存储器中的一者组成。
3.根据权利要求1所述的装置,其中所述主机总线适配器包含先进主机控制接口 (AHCI)主机总线适配器(HBA)仿真器。
4.根据权利要求3所述的装置,其中所述AHCIHBA仿真器包含硬件接口,所述硬件接口经配置以将主机系统软件与所述SATA存储装置介接。
5.根据权利要求1所述的装置,其中所述主机总线适配器包含PCIe物理层,其经配置以将所述大容量存储装置介接到所述PCIe链路;PCIe核心,其耦合到所述PCIe物理层,经配置以对PCIe包进行编码/解码;PCIe/AHCI桥接器,其耦合到所述PCIe核心,经配置以将PCIe数据翻译为SATA格式数据且将SATA格式数据翻译为PCIe数据;AHCI引擎,其耦合到所述PCIe/AHCI桥接器,经配置以充当主机存储器与所述PCIe大容量存储装置之间的总线主控器;及SATA装置,其耦合到所述AHCI引擎,经配置以为所述PCIe大容量存储装置提供SATA 仿真。
6.根据权利要求5所述的装置,其中所述PCIe物理层经配置以将PCIe数据从PCIe链路数据速率降频转换到用于所述PCIe大容量存储装置的较低数据速率,且将SATA数据从所述较低数据速率升频转换到所述PCIe链路数据速率。
7.根据权利要求5所述的装置,其中所述AHCI引擎执行所述主机存储器与所述PCIe 大容量存储装置之间的直接存储器存取操作。
8.根据权利要求5所述的装置,其中所述PCIe物理层经配置以将模拟PCIe信号转换为数字SATA信号,且所述PCIe物理层进一步经配置以将数字SATA信号转换为模拟PCIe 信号。
9.根据权利要求5所述的装置,其中所述PCIe物理层进一步包含用于临时存储传入及传出数据的缓冲器。
10.根据权利要求5所述的装置,其中所述AHCI引擎包含直接存储器存取写入引擎,其经配置以执行到主机存储器的直接存储器存取写入操作;直接存储器存取读取引擎,其经配置以执行从所述主机存储器的直接存储器存取读取操作;及若干AHCI寄存器,其配置并控制所述PCIe大容量存储装置。
11.根据权利要求5所述的装置,其中所述PCIe/AHCI桥接器、所述AHCI引擎及所述 SATA装置组成AHCI装置控制器,所述AHCI装置控制器提供主机存储器与存储媒体之间的数据移动。
12.一种用于操作PCIe大容量存储装置的方法,所述方法包含向主机指示所述PCIe大容量存储装置为SATA主机总线适配器; 接收呈SATA格式的通信;及仿真所述SATA格式。
13.根据权利要求12所述的方法,其中向所述主机指示所述PCIe大容量存储装置为 SATA主机总线适配器包含向所述主机指示经由PCIe接口耦合到所述主机的PCIe大容量存储装置为SATA主机总线适配器。
14.根据权利要求12所述的方法,且其进一步包含接收所述PCIe大容量存储装置中的配置寄存器中的配置数据,所述配置数据呈SATA格式。
15.根据权利要求12所述的方法,且其进一步包含以SATA格式发射关于所述PCIe大容量存储装置的操作状态的状态数据。
16.一种PCIe大容量存储系统,其包含 主机系统,其经配置以控制所述大容量存储系统的操作;及PCIe大容量存储装置,其经由PCIe接口耦合到所述主机系统,所述大容量存储装置包含主机总线适配器,其经配置以借助所述主机系统仿真SATA装置;及 SATA大容量存储装置,其耦合到所述主机总线适配器且其经配置以响应于来自所述主机系统的SATA命令。
17.根据权利要求16所述的系统,其中所述主机系统包含经配置为以SATA格式进行通信的软件。
18.根据权利要求16所述的系统,其中所述主机系统为具有PCIe链路电路的计算机, 且所述计算机包含具有经由所述PCIe接口与SATA大容量存储装置通信的能力的操作系统。
19.根据权利要求16所述的系统,其中所述PCIe大容量存储装置在无PCIe/SATA桥接器的情况下耦合到所述主机系统。
全文摘要
本发明揭示一种大容量存储装置、系统及用于操作大容量存储装置的方法。在一个此种大容量存储装置中,主机总线适配器经由与主机系统的PCIe接口仿真SATA大容量存储装置。所述主机系统借助PCIe大容量存储装置以就像与SATA大容量存储装置通信的相同格式产生命令。所述PCIe大容量存储装置以相同SATA格式做出响应。
文档编号G06F13/14GK102160044SQ200980137046
公开日2011年8月17日 申请日期2009年9月2日 优先权日2008年9月22日
发明者迈赫迪·阿斯纳阿沙里 申请人:美光科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1