使用高级主机控制器接口来传送数据的方法和仪器的制作方法

文档序号:6656781阅读:285来源:国知局
专利名称:使用高级主机控制器接口来传送数据的方法和仪器的制作方法
领域本发明的实施例涉及在计算机系统中传送数据的领域,尤其涉及使用高级主机控制器接口(AHCI)进行数据交换。
背景诸如CD ROM、硬盘驱动器、DVD RAM等串行高级技术附件(SATA)设备能够以集中的方式开发以用于具有符合于2004年4月13日发布的串行ATA主机控制器接口(AHCI)规范版本1.0的主机控制器(HC)的计算机系统。AHCI规范描述了实现该规范并用作计算机系统内SATA设备和存储器之间的接口的设备。接口设备例如可称为主机控制器、主机总线适配器等等。因为该设备由一规范描述,所以可以期望该设备能够响应于预制定的命令和过程。
例如,HC通常在数据交换前向SATA设备发送命令。HC随后在能发生数据交换之前等待响应。但因为通常在测试HC时一般没有SATA设备存在,所以测试HC交换数据的能力就变得困难。结果是HC没有必要向还不存在的设备发送命令并等待它的响应。
附图简述本发明的实施例可通过参考随后的描述以及示出这些实施例的附图来最好地理解。
在附图中

图1-A根据一个实施例示出了与一设备耦合的主机控制器的示例性配置。
图1-B根据一个实施例示出了与第二主机控制器耦合的主机控制器的示例性配置。
图2是使用主机控制器来交换数据的过程的一个实施例的流程图。
图3是使用主机控制器来交换数据的过程的一可选实施例的流程图。
图4根据本发明的实施例示出了包含处理器和主机控制器以交换数据的示例性系统。
详细描述在随后的描述中,将出于解释的目的阐明多个具体细节以提供对本发明的全面理解。然而对本领域普通技术人员显而易见的是无需这些具体细节也能实践本发明的实施例。
本发明的实施例允许省略用于数据交换的状态机序列中HC进入操作模式的状态。在一个实施例中,HC接收交换数据的请求,其中该交换数据的请求可以是发送数据的请求也可以是接收数据的请求。因此,一旦进入该模式,一个位即被清零,并在发送待由一设备接收的命令之前在状态机的下一状态中被置位。在发送待由一设备接收的命令之前将该位置位是为了使得HC能够省略通常要在数据发送或接收之前执行的状态。根据一个实施例,该HC是高级主机控制器接口HC。
因此,正如以下将详述的那样,本发明的实施例允许通过减少在HC的数据交换中要执行的操作来改进测试主机控制器的能力。
图1-A示出了耦合至主机控制器测试设备(测试设备)52的主机控制器(HC)50。HC50通过SATA接口58耦合至测试设备52。该接口可以是为HC50提供与测试设备52进行通信的能力的任何合适的接口。此外,测试设备52可以是能够提供测试HC所需的功能的任何合适的设备。
图1-B示出了一个可选的测试配置,其中第一主机控制器(HC-A)54耦合至第二主机控制器(HC-B)56。这些HC可如上所述通过任何合适的接口耦合。通过将两个HC耦合在一起,计算机系统就能用于测试主机控制器的数据接收和发送。
本发明的实施例可由在图1-A和图1-B所示的配置中的主机控制器来实现。因为主机控制器的其他合适配置也是可行的,所以提供的图1-A和图1-B的配置仅是示例性而非限制性的。
图2根据一个实施例示出了描述与HC交换数据的过程的流程图。在过程框60中,HC进入一模式。对于本发明的一个实施例而言,该模式可以是测试HC的模式。此外,在一个实施例中,该模式可以特别用于测试处于该模式中的HC的数据发送或数据接收。HC可如计算机系统存储器26中所存储的软件指令所指示地进入此模式。HC也可以如图1-A和图1-B所示,通过由HC从与其耦合的外部设备中接收的指令来进入此模式。用于进入该HC的模式的实施例不受上述过程的限制。此外,各实施例可以使用HC设备驱动程序来为HC设置模式和/或修改。
对于一个实施例而言,一旦进入该模式(过程框60),HC就将一个位清零以指示HC不忙碌。更具体地,可以将该位清零以表示HC当前未执行操作。例如,一个实施例可以在进入此模式时将PxTFD.STS.BSY位(BSY位)清零。对于一个实施例而言,BSY位是指示与HC同SATA设备交换数据的能力相关联的任务文件数据的当前状态的特定寄存器位。
接着,HC选择该HC将要发送给一设备以交换数据的命令(过程框62)。该HC随后取出所选命令的命令首部(过程框64)。对于一个实施例而言,命令的选择可由诸如系统10等计算机系统触发,或由诸如在图1-A和1-B等所示的外部硬件设备所触发。
通常情况下,该HC在取出命令首部(过程框64)之后仍将保持空闲直到准备好将该命令发送给设备。然而对于一个实施例而言,在取出该命令首部之后,将一个位置位来指示该HC忙碌,即正在执行操作(过程框66)。对于一个实施例而言,可以将BSY位置位以指示系统忙碌。通过将该位置位以指示系统忙碌,HC进行数据交换(过程框68)。数据交换可以是数据发送或数据接收。
当该位被置位以指示HC忙碌(过程框66)时,该HC就不向SATA设备发送命令。该HC也无需接收该命令被成功发送的确认。此外,通过将该位置位,HC也不必等待SATA设备准备好接受数据或等待SATA设备准备好接收数据的确认。相反,该HC进行数据交换。
因为HC在该位被置位时直接进行数据交换,所以HC省略用于数据发送和/或数据接收的状态机序列中的一个状态。对于一个实施例而言,当HC在此模式中发送数据时省略了状态机序列的以下状态中的至少一种或多种命令帧信息结构发送(CFISXmit)、命令帧信息结构成功(CFISSuccess)、主机空闲(HIdle)、非数据帧信息结构接收进入(NDREntry)以及非数据帧信息结构接收接受(NDRAccept)。在一可选实施例中,也可以省略其他的状态和过程。于是,根据一个实施例,在HC处于该模式时用于数据发送的状态机序列可以是HIdle、HSelectCmd、HFetchCmd、HIdle、DXEntry和DXTransmit。根据一个实施例,该位在进入用于数据发送的状态机序列的第二个HIdle状态时被置位,其中的HIdle指的是主机控制器不活动的状态。
类似地,根据一个实施例,HC在处于此模式中接收数据时可以省略以下状态中的至少一种或多种CFISXmit、CFISSuccess和HIdle。于是,用于数据接收的状态机序列可以是HIdle、HSelectCmd、HFetchCmd、HIdle、DREntry和DRReceive。在一个可选实施例中,也可省略其他的状态和过程。根据一个实施例,一个位在进入用于数据接收的状态机序列的第二个HIdle状态时被置位。
图3根据本发明一个可选实施例示出了描述用HC交换数据的过程的流程图。根据该实施例,HC设备驱动程序和增强型HC如上所述可通过省略用于数据交换的状态和过程来交换数据。如图3所示,AHCI设备驱动程序可以修改应由HC接收的命令列表的内容(过程框70)。命令列表内包括的是带有相应的命令帧信息结构长度(CFL)的命令帧信息结构(CFIS)。AHCI设备驱动程序会将CFL设置为0。通过设置CFL=0,增强型的主机控制器就不会处理CFIS。结果是,该主机控制器能够在无需向与其耦合的设备发送命令也无需等待该设备确认此命令被接收的情况下交换数据。
在CFL被设置为0之后,HC就可如该HC参考图2中实施例所做的那样选择交换数据的命令(过程框72)并且取出该命令的首部(过程框74)。然而,与图2所示的实施例不同,图3的实施例无需在HC取出命令首部之后将一个位置位。如果CFL=0,则HC既不向设备发送命令也不等待设备收到命令的确认。相反,在取出命令首部之后,HC将在CFL=0时直接进行数据交换(过程框76)。
这一实施例能够允许改进测试HC的能力。根据图3所示的实施例,本方法能够允许灵活地与测试HC发送和/或接收命令。此外,这一实施例能够提供其中软件和/或硬件执行各种命令的测试HC的灵活方法。根据一个实施例,可任选地设置CFL=0允许其中仅有部分命令要求将CFIS发送给测试设备的命令的混合。
图4根据一个实施例示出了实现在此描述的仪器和方法的系统10。虽然在系统10的上下文中进行描述,但是各实施例也可以在任何合适的计算机系统中实现。
如图4所示,计算机系统10包括至少一个HC24。计算机系统10还包括存储器26以及输入/输出控制器集线器(ICH)28。处理器22、存储器26、HC24以及ICH28都耦合至存储器控制器集线器48。ICH28经由集线器链路20耦合至存储器控制器集线器。或者,HC34能够额外地耦合至或集成到存储器控制器集线器48。
系统存储器26为计算机系统10存储数据和/或指令,并且可以包括任何合适的存储器,诸如动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)或扩展的数据输出随机存取存储器(EDO RAM)。计算机系统10还包括耦合至诸如阴极射线管(CRT)或液晶显示器(LCD)等显示器32的图形控制器30。
ICH28为计算机系统10提供到I/O设备或外围组件的接口。ICH28可包括任何合适的接口控制器以提供到处理器22和存储器26的任何合适的通信链路。ICH28还提供到I/O设备44(诸如鼠标、键盘、软盘驱动器和/或任何合适的I/O设备)的接口。ICH 28还可以为诸如并行高级技术附件(PATA)设备38和/或通用串行总线(USB)设备40之类的设备提供可选接口。
HC24和34为任何合适的SATA设备36和/或46提供到处理器22和存储器26的接口,诸如,用于例如存储和/或检索数据和/或指令的硬盘驱动器(HDD)、致密盘只读存储器(CD ROM)、数字视频盘只读存储器(DVD ROM)。
系统存储器26还包括根据一个实施例通过省略在此讨论的过程和状态来测试HC的指令42。对于一个可选实施例而言,该指令无需驻留在存储器26之内,因为这些指令可以包括在计算机系统10内的固件中、计算机系统10内的专用电路中等等。
因此,计算机系统10包括其上存储有一组指令(即,软件)的机器可读介质,其中该组指令具体化了在此描述的任何一种或全部方法。例如,软件可以完全或至少部分地驻留在存储器26内和/或处理器22内。从本说明书的目的出发,应该认为术语“机器可读介质”包括提供(即,存储、检索和/或传输)机器(例如,计算机)可读形式的信息的任何机制。例如,机器可读介质包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光学存储介质;闪存设备;电学、光学、声学或其他形式的传播信号(例如,载波、红外信号、数字信号等)等等。
虽然业已参考了具体的示例性实施例描述了本发明,但显而易见的是可以对这些实施例做出各种修改和变化而不背离本发明的宽泛精神和范围。因此,本说明书和附图旨在说明而非限制。
权利要求
1.一种方法,包括进入主机控制器的一种模式;以及在由所述主机控制器执行数据交换之前省略所述主机控制器的状态机序列中的一个状态。
2.如权利要求1所述的方法,其特征在于,还包括一进入所述模式就将一个位清零以指示所述主机控制器不忙碌;在所述数据交换之前一进入所述状态机序列中的下一状态就将所述位置位以指示所述主机控制器忙碌;以及交换数据。
3.如权利要求2所述的方法,其特征在于,所述位指示当前任务文件状态。
4.如权利要求2所述的方法,其特征在于,所述位在待由一独立设备接收的命令信息被发送之前被置位。
5.如权利要求1所述的方法,其特征在于,省略用于数据交换的所述状态包括省略以下的至少一种发送待由一设备接收的命令;以及接收所述命令被成功发送的确认。
6.如权利要求5所述的方法,其特征在于,还包括省略以下的至少一种等待所述设备确定所述设备是否准备好接受数据;以及接收所述设备准备好接受数据的经验证的响应。
7.如权利要求1所述的方法,其特征在于,所述数据交换是数据发送或数据接收中的一种。
8.如权利要求1所述的方法,其特征在于,所述主机控制器是高级主机控制器接口主机控制器。
9.如权利要求1所述的方法,其特征在于,所述模式是测试模式。
10.一种方法,包括主机控制器取命令;所述主机控制器接收所述命令;以及所述主机控制器在不发送待由一独立设备接收的命令信息的情况下交换数据。
11.如权利要求10所述的方法,其特征在于,所述主机控制器接收命令还包括所述主机控制器接收带有经修改的命令结构的命令。
12.如权利要求11所述的方法,其特征在于,所述经修改的命令结构是命令帧信息结构长度等于零的命令。
13.一种方法,包括主机控制器取命令;所述主机控制器接收带有经修改的命令结构的所述命令;以及所述主机控制器在不发送待由一独立设备接收的命令的情况下交换数据。
14.如权利要求13所述的方法,其特征在于,还包括所述主机控制器在不等待所述独立设备确认所述命令已被接收的情况下交换数据。
15.如权利要求14所述的方法,其特征在于,所述经修改的命令结构包括等于零的命令帧信息结构长度。
16.一种仪器,包括用于进入主机控制器的一种模式的装置;以及用于在由所述主机控制器进行数据交换之前省略所述主机控制器的状态机序列中的一个状态的装置。
17.如权利要求16所述的仪器,其特征在于,还包括用于一进入所述模式就将一个位清零以指示所述主机控制器不忙碌的装置;用于在所述数据交换之前一进入所述状态机序列中的下一状态就将所述位置位以指示所述主机控制器忙碌的装置;以及用于交换数据的装置。
18.如权利要求16所述的仪器,其特征在于,所述用于省略用于数据交换的状态的装置包括用于省略以下的至少一种的装置用于发送待由一独立设备接收的命令的装置;以及用于接收所述命令被成功发送的确认的装置。
19.如权利要求18所述的仪器,其特征在于,还包括省略以下的至少一种用于等待所述独立设备确定所述独立设备是否准备好接受数据的装置;以及用于获取所述独立设备准备好接受数据的经验证的响应的装置。
20.一种仪器,包括用于取命令的装置;用于接收所述命令的装置;以及用于在不发送待由一独立设备接收的命令信息的情况下交换数据的装置。
21.如权利要求20所述的方法,其特征在于,所述主机控制器接收命令还包括所述主机控制器接收带有经修改的命令结构的命令。
22.如权利要求21所述的方法,其特征在于,所述经修改的命令结构是命令帧信息结构长度等于零的命令。
23.一种仪器,包括用于取命令的装置;用于接收命令的装置;用于在不发送待由一独立设备接收的命令信息的情况下交换数据装置;以及用于在不等待所述独立设备确认所述命令信息已被接收的情况下交换数据的装置。
24.如权利要求23所述的仪器,其特征在于,还包括用于接收带有经修改的命令结构的命令信息的装置。
25.如权利要求24所述的仪器,其特征在于,所述带有经修改的命令结构的命令信息是命令帧信息结构长度等于零的命令。
26.一种仪器,包括主机控制器,所述主机控制器用于从存储器中取命令;接收来自所述存储器的所述命令;以及在不发送待由一独立设备接收的命令信息的情况下在所述存储器和所述独立设备之间用所述主机控制器交换数据。
27.如权利要求26所述的仪器,其特征在于,所述主机控制器是串行高级技术附件高级主机控制器接口主机控制器。
28.如权利要求26所述的仪器,其特征在于,所述设备是串行高级技术附件设备。
29.一种系统,包括系统总线;同步动态随机存取存储器;以及耦合至所述总线的主机控制器,所述主机控制器用于从系统存储器中取命令;接收来自所述系统存储器的所述命令;以及不发送待由一独立设备接收的命令信息的情况下在所述独立设备和系统存储器之间用所述主机控制器交换数据在。
30.如权利要求29所述的系统,其特征在于,所述交换数据是发送数据或接收数据中的一种。
31.如权利要求29所述的系统,其特征在于,所述主机控制器是串行高级技术附件高级主机控制器接口主机控制器。
32.一种制品,包括包括数据的机器可访问介质,所述数据在被机器访问时使得所述机器执行以下操作主机控制器从存储器中取命令;所述主机控制器接收来自所述存储器的所述命令;以及所述主机控制器在不发送待由一独立设备接收的命令信息的情况下在所述独立设备和所述存储器之间交换数据。
33.如权利要求32所述的制品,其特征在于,所述机器可访问介质还包括使得所述机器执行以下操作的数据所述主机控制器在不接收所述命令已被成功发送的确认的情况下交换数据。
34.如权利要求33所述的产品,其特征在于,所述主机控制器是串行高级技术固件高级主机控制器接口主机控制器。
全文摘要
公开了一种用于进入主机控制器的一种模式并在该主机控制器进行数据交换之前省略主机控制器状态机序列中的一个状态的方法和仪器。对于一个实施例而言,本方法和仪器包括在命令信息被发送给独立设备之前将一个位置位并且无需将该命令信息发送给独立设备就能交换数据。本实施例的该位指示了当前任务文件的状态。
文档编号G06F13/38GK101014942SQ200580030446
公开日2007年8月8日 申请日期2005年9月13日 优先权日2004年9月22日
发明者E·H·奥 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1