存储设备、主机控制器和存储系统技术方案

技术编号:7307465 阅读:229 留言:0更新日期:2012-05-02 21:03
本发明专利技术提供了一种存储设备、主机控制器和存储系统。根据一个实施例,主机控制器具有命令生成器和检测器。所述命令生成器生成在自变量中具有重传标志的命令,并且向存储设备传送所生成的命令。如果在限定时间内无法识别来自所述存储设备的响应,则所述检测器检测到超时。当传送初始命令时,所述主机控制器对所述重传标志进行清零并且传送所述命令。如果所述检测器检测到超时,则所述主机控制器设置所述重传标志,并且向所述设备重传与所述初始命令相同的命令。如果接收到与所述初始命令或重传的命令相对应的正常响应,则所述主机控制器识别出所述命令被正确地执行。

【技术实现步骤摘要】

此处描述的实施例一般涉及被应用于例如SD 卡并且具有高级直接存储访问 (ADMA)的存储系统。
技术介绍
最近,诸如SD存储卡的SD卡被广泛用于作为主机装置的例如蜂窝电话和数字照相机中。这种SD存储卡通过主机控制器被连接到主机装置,并且主机控制器控制主机装置与SD存储卡之间的数据传输。作为使用总线接口的主机_设备通信方法,存在一种方法,通过该方法,主机向设备传送命令,并且通过接收来自该设备的响应来检查该命令是否被该设备接受。也有可能通过使用特定的读/写命令来实现数据传输,或者使用错误检测,该错误检测使用循环冗余校验(CRC)码来检测由噪声之类引起的传输错误。即使当噪声发生在相同环境中并且由噪声引起的比特错误的发生概率保持不变时,比特错误发生的时间间隔也随着总线传输速率的增加而缩短。因此,预测到比特错误以例如每几秒钟至几分钟一比特的比率发生。这使得在高速总线中支持协议的重传功能是重要的。如果在使用常规命令协议时通过经由CRC码等进行校验发生了一定错误(包括比特错误)时,主机必须通过中止命令来临时停止传输并且重试命令。这中断了数据传输并且降低了传输效率。尤其是像这样由噪声引起的中断发生在使用硬件的直接存储器访问 (DMA)传输期间时,由驱动器进行处理是必要的,并且DMA的效果有所降低。在使用高速总线的数据传输中由于噪声之类而发生的传输错误引起了相同的问题;如果通过CRC码等进行校验,在数据传输期间由于噪声而发生了比特错误,则主机必须中断数据传输一次,然后重试该数据传输。这种开销在高速总线中是无法忽略的。
技术实现思路
该实施例提供了一种存储系统、一种主机控制器,以及一种能够(甚至当错误发生在命令响应序列中时)通过防止中断数据传输来增加数据传输效率的存储系统。一般地,根据一个实施例,主机控制器包括命令生成器和检测器。所述命令生成器生成在自变量中具有重传标志的命令,并且将所生成的命令传送到存储设备。如果在限定的时间内无法识别来自所述存储设备的响应,则所述检测器检测到超时。当传送初始命令时,所述主机控制器对所述重传标志进行清零(clear)并且传送所述命令。如果所述检测器检测到超时,则所述主机控制器设置所述重传标志,并且向所述设备重传与所述初始命令相同的命令。如果接收到与所述初始命令或重传的命令相对应的正常响应,则所述主机控制器识别出所述命令被正确地执行。本专利技术的实施例可以实现一种存储设备、一种主机控制器以及一种能够甚至当在命令响应序列中发生错误时通过防止中断数据传输来增加数据传输效率的存储系统。附图说明图1是示意性地示出了根据实施例的存储系统的框图;图2是示意性地示出了系统存储器和存储卡的存储映射的视图;图3是示出了根据实施例的描述符的结构的视图;图4是示意性地示出了图1所示的ADMA的框图;图5A是示意性地示出了命令分组的格式的视图,并且图5B是示意性地示出了响应分组的格式的视图;图6是示出了主机控制器的操作流程的流程图;以及图7是示出了设备的操作流程的流程图。具体实施例方式下面将参照附图解释实施例。图1示意性地示出了根据该实施例的存储系统。在该实施例中,命令的自变量具有重传标志。该实施例具有的流程是如果响应于初始命令而发生了错误,则主机控制器设置重传标志,并且重传与初始命令相同的命令。因此,即使当因为噪声在数据传输期间发生了错误时,也有可能防止数据传输的中断,并且防止数据传输效率的降低。图1所示的系统控制器11被安装在诸如蜂窝电话这样的主机装置中,并且控制与主机装置的CPU 12、系统存储器13和SD主机控制器14的接口。系统存储器13存储了主机驱动器21、描述符表格22和数据23。操作系统(OS) 保证了在系统存储器13上存储主机驱动器21、描述符表格22和数据23所必要的区域。主机驱动器21是OS唯一的驱动器,其被提供用于例如SD主机控制器14,并且由 CPU 12来执行。主机驱动器21在执行ADMA(随后予以描述)之前生成描述符表格22。描述符表格22是用于在系统存储器13与SD卡之间进行数据传输所必要的信息列表。描述符表格22的结构随后将予以描述。SD主机控制器14具有以下功能通过使用SD命令,在系统存储器13与SD卡之间双向传输数据。SD主机控制器14主要包括系统总线接口(I/F)电路31、存储卡I/F电路32、包括多个寄存器的寄存器组33、ADMA34和计时器35。系统总线I/F电路31经由系统总线被连接到系统控制器11。存储卡I/F电路32 可经由SD总线接口(未示出)而连接到SD卡(诸如SD存储卡15和SDIO卡16)。SD存储卡15和SDIO卡16被设置成由从SD主机控制器14提供的命令来控制,并且响应于所接收到的命令,在预设的限定时间内向SD主机控制器14返回响应。SD存储卡15包括CPU 15a、RAM 15b、ROM 15c、缓冲器(BUF) 15d、接口(I/F) 15e、NAND 存储器的接口(NI/F) 15f, 以及NAND存储器(NAND) 15g。CPU 15a由在自变量中具有重传标志的命令来控制,并且响应于所接收到的命令,在限定时间内传送响应。CPU 15a还检测比特错误。SD主机控制器14的寄存器组33被分类为多个单元(未示出),诸如SD命令生成单元、响应单元、缓冲器数据端口单元、主机控制单元、中断控制单元和ADMA单元。用于发出SD命令所必要的信息(诸如命令编号、命令模式和自变量)以及用于传输数据所必要的信息(诸如块长度和块计数)被设置在寄存器组33的SD命令生成单元中。当这些信息段被设置时,SD命令生成单元向SD卡发出命令。寄存器组33中的响应单元接收从SD卡提供的响应于该命令的响应。ADMA 34是用于在SD卡和系统存储器13之间传输数据而没有CPU12的任何干预的电路。ADMA 34根据系统存储器13上的描述符表格22中所描述的内容来执行数据传输。计时器35检测超时错误。例如,如果自发出命令以来在经过了预设的限定时间或预设的时钟数之内未能接收到任何响应,则计时器35检测到超时错误。当检测到其重传标志被设置成“0”的命令的响应超时错误时,并不通知主机CPU 12,但是SD主机控制器14发出其重传标志被设置成“1”的相同命令。当检测到其重传标志被设置成“1”的命令的响应超时错误时,通过中断来通知主机CPU 12,并且由主机驱动器来进行处理。即使在检测到其重传标志被设置成“0”的命令的响应超时错误时,也有可能通过主机驱动器来重传该命令。 然而,性能是下降的。在重传命令中,当再次检测到响应超时错误时,传输被中断并且由主机驱动器来执行错误处理。图2示出了 SD物理地址与系统存储器13的页面调度管理(paging management) 之间的关系的例子。通过针对每个小区域(例如4k字节区域)的页面调度来管理系统存储器13。通过使用由主机CPU 12管理的页面调度功能,由主机CPU 12执行的应用通过逻辑地址来访问系统存储器13。因此,如通过逻辑地址系统存储映射所指示的,数据明显地被安排在连续地址区域中。然而,系统存储器13中实际记录数据的位置是任意的,并且如物理地址系统存储映射所指示的那样被分片。通过地址和数据长度来管理这些数据,并且数据长度是可变的。而且本文档来自技高网...

【技术保护点】

【技术特征摘要】
...

【专利技术属性】
技术研发人员:藤本曜久
申请(专利权)人:株式会社东芝
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术