【具体实施方式】
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明的详细描述主要通过程序、步骤、逻辑块、过程或其他象征性的描述来呈现,其直接或间接地模拟本发明中的技术方案的运作。所属领域内的技术人员使用此处的这些描述和陈述向所属领域内的其他技术人员有效的介绍他们的工作本质。
此处所称的“一个实施例”或“实施例”是指与所述实施例相关的特定特征、结构或特性至少可包含于本发明至少一个实现方式中。在本说明书中不同地方出现的“在一个实施例中”并非必须都指同一个实施例,也不必须是与其他实施例互相排斥的单独或选择实施例。此外,表示一个或多个实施例的方法、流程图或功能框图中的模块顺序并非固定的指代任何特定顺序,也不构成对本发明的限制。
根据本发明的一个方面,本发明提出一种双界面存储控制器系统,其包括有可以支持两个界面(interface,也可称之为接口或界面接口)的存储控制器,这样该存储控制器系统就可以支持具有所述两个接口中的任意一个接口的主机,从而方便了用户的使用,可以扩大所述双界面存储控制器系统的应用范围。
图1为本发明中的双界面存储控制器系统在一个实施例中的结构框图。所述双界面存储控制器系统包括双界面存储控制器200和存储单元300。
所述双界面存储控制器200包括物理层模拟(analog circuit)模块210、串行高级技术附件(Serial Advanced Technology Attachment,本文中简称SATA)物理层数字(digital circuit)模块220、SATA链路层模块230、SATA传输层(transport layer)模块240、快速外围部件互连(Peripheral ComponentInterconnect Express,本文中简称PCIE)物理层数字(digital circuit)模块、PCIE链路层模块260、PCIE事物层(transaction layer)模块270、协议层解析控制模块280和存储单元控制模块290。
所述物理层模拟模块210具有或支持两个物理接口,一个是SATA物理接口,另一个是PCIE物理接口,所述SATA物理接口可以与具有或支持SATA物理接口的主机(本文中简称SATA主机)100a对接,所述PCIE物理接口可以与具有或支持PCIE物理接口的主机(本文中简称PCIE主机)100b对接。所述主机100a和100b可以为笔记本电脑、台式机电脑、平板电脑、智能手机、数码相机、POS(Point of sales,零售终端)机或ATM(Automatic Teller Machine,自动取款机)机等各种电子设备。
所述物理层模拟模块210负责将来自SATA100a主机或PCIE主机100b的高速串行信号转换为低速并行信号,并将所述低速并行信号发送给SATA物理层数字模块220或者PCIE物理层数字模块250。同样的,所述物理层模拟模块210还负责将来自SATA物理层数字模块220或PCIE物理层数字模块250的低速并行信号转换成高速串行信号,并将所述高速串行信号发送给SATA主机110a或PCIE主机110b。
在一个实施例中,所述高速串行信号可以是1.5Gb/s,2.5Gb/s,3.0Gb/s,5.0Gb/s,6.0Gb/s,8Gb/s和16Gb/s中的一种,这取决于主机的类型和速度,高速串行信号的质量和电气特性需要符合SATA或者PCIE对应的要求。所述低速并行信号的频率相对于串行的高速频率而言比较低,可以是但不限于200Mhz,150Mhz,125Mhz,75Mhz,并行总线宽度可以是但不限于10位、20位和40位。
所述SATA物理层数字模块220负责处理数据对齐、数据接收弹性缓冲、SATA速度协调等。所述SATA链路层模块230负责处理数据编解码、扰码反扰码以及SATA协议规定的链路层的握手等。SATA传输层模块240负责处理SATA协议规定的传输层的握手等。这三个模块220、230和240可以兼容SATA1.0,SATA2.0,SATA3.0版本。这三个模块220、230和240可以被统称为SATA通道。
所述PCIE物理层数字模块250负责处理数据对齐、数据接收弹性缓冲和极性反转等。所述PCIE链路层模块260负责处理电源管理、数据错误重发以及PCIE协议规定的链路层的握手等。所述PCIE事务层模块260负责处理PCIE协议规定的事务层的握手等。这三个模块250、260、270可以兼容PCIE1.0,PCIE2.0,PCIE3.0版本。这三个模块250、260、270可以被统称为PCIE通道。
所述协议应用层解析控制模块280负责基于SATA协议或PCIE协议与所述存储单元控制模块290进行数据和/或命令的交互,比如基于SATA协议或PCIE协议解析来自SATA传输层模块240或者PCIE事务层280的数据和/或命令,基于SATA协议或PCIE协议发送数据和/或命令给SATA传输层模块240或者PCIE事务层280。所述协议应用层解析控制模块280还负责与所述存储单元控制模块290进行数据和/或命令的交互。所述存储单元控制模块290可以与协议应用层解析控制模块280进行数据和/或命令的交互,也可以完成对存储单元300中的数据的访问,包括读取和写入。
所述存储单元300包括但不限于各种非易失性存储卡,比如安全数字卡(Secure Digital Memory Card,简称SD卡)、微型安全数字卡(Mini Secure DigitalMemory Card,简称MiniSD卡)、多媒体卡(Multimedia Card,简称MMC卡)、记忆棒(Memory Stick,简称MS卡)、智慧媒体卡(SmartMedia Card,简称SM卡)、Compact Flash(简称CF卡)、或非闪存(NOR FIASH)、与非闪存(NAND FLASH)等,以及各种易失性存储单元,比如动态随机访问存储器DRAM、静态SRAM。
所述存储单元控制模块290和存储单元300之间的接口协议可以采用标准的协议规范,包括但不限于SD卡接口协议、MiniSD卡接口协议、MMC卡接口协议、MS卡接口协议、NAND FLASH接口协议等,也可以采用自定义的特有协议规范。
在图1所示的实施例中,只显示了一个存储单元控制模块290和一个存储单元300,在其它实施例中,还可以包括多个存储单元300,所述存储单元控制模块290也可以不止一个,但是多个存储单元控制模块290都和唯一的协议应用层解析控制模块280进行数据和/或命令交互。由于所述存储单元300和所述存储单元控制模块290的数目可以为多个,因此所述存储控制器200支持的总容量则可以变得非常大,甚至可以达到几十GB或上百GB,或更高。
在一个实施例中,在写入数据到所述存储单元300中时,所述存储单元控制模块290可以先对数据进行加密或扰码,随后再将加密或扰码后的数据写入所述存储单元300中。相应的,在读取数据时,所述存储单元控制模块290先将读取的数据进行解码或反扰码,再发送给所述协议应用层解析控制模块280。这样,可以实现对数据的加解密,从而可以对所述存储单元300内的内容进行保护。
在一个实施例中,所述双界面存储控制器200具有两种工作模式,一种是SATA模式,一种是PCIE模式。
所述物理层模拟模块210会检测其SATA物理接口和PCIE物理接口中的哪个有主机对接,所述检测结果包括下面三种中的一种或多种,第一种检测结果为:所述SATA物理接口有SATA主机100a对接,而PCIE物理接口没有PCIE主机100b对接;第二种检测结果为:所述PCIE物理接口有PCIE主机100b对接,而SATA物理接口没有SATA主机100a对接;第三种检测结果为:所述SATA物理接口有SATA主机100a对接,且所述PCIE物理接口有PCIE主机100b对接。
所述物理层模拟模块210可以通过检测SATA物理接口和PCIE物理接口上的阻抗来检测哪个物理接口有主机对接,也可以通过检测传输的信号的协议来检测哪个物理接口有主机对接,还可以通过设置额外的物理开关来检测哪个物理接口有主机对接,当然还可以通过其他方式进行检测。
如果所述检测结果为第一种,所述双界面存储控制器200进入SATA模式,此时将关闭PCIE通道中各个模块250、260和270的时钟,这样能够降低PCIE通道的功耗,而SATA通道中的各个模块220、230和240依然正常工作。在此模式下,所述物理层模拟模块210会将来自SATA主机100a的高速串行信号转换为低速并行信号,并将所述低速并行信号发送给SATA物理层数字模块220,所述协议应用层解析控制模块280会调用并基于SATA协议与SATA传输层模块240进行命令和/或数据的交互,同时与所述存储单元控制模块290进行数据和/或命令交互。在SATA模式下,数据传输的通路为SATA主机100a、SATA物理层模拟模块210、SATA物理层数字模块220、SATA链路层数字模块230、SATA传输层数字模块240、所述协议应用层解析控制模块280、所述存储单元控制模块290和存储单元300。
如果所述检测结果为第二种,所述双界面存储控制器200进入PCIE模式,此时将关闭SATA通道中各个模块220、230和240的时钟,这样能够降低功耗,而PCIE通道中的各个模块250、260和270依然正常工作。在此模式下,所述物理层模拟模块210会将来自PCIE主机100b的高速串行信号转换为低速并行信号,并将所述低速并行信号发送给PCIE物理层数字模块250,所述协议应用层解析控制模块280调用并基于PCIE协议与PCIE传输层模块270进行命令和/或数据的交互,同时与所述存储单元控制模块290进行数据和/或命令的交互。在PCIE模式下,数据传输的通路为PCIE主机100b、PCIE物理层模拟模块210、PCIE物理层数字模块250、PCIE链路层数字模块260、PCIE传输层数字模块270、所述协议应用层解析控制模块280、所述存储单元控制模块290和存储单元300。
如果所述检测结果为第三种,那么可以预先设定一个优选的工作模式进行工作,比如可以设定SATA模式为优选的工作模式,此时假如发生两种主机都连接的情况,则所述存储控制器优先进入SATA模式。
可以看出,无论是在SATA模式,还是在PICE模式下,所述物理层模拟模块210都进行工作,这样可以在两种模式下共享所述物理层模拟模块210,从而可以简化设计,同时也能降低设计和生产成本,提高使用效率。此外,无论是在SATA模式,还是在PICE模式下,所述协议应用层解析控制模块280都处于工作状态,只是在不同的SATA模式下调用的协议不同,即在SATA模式下调用SATA协议,在PCIE模式下调用PCIE协议,这样在两种模式下共享所述协议应用层解析控制模块280,同样也可以简化设计,同时也降低设计和生产成本,提高使用效率。在一个优选的实施例中,所述协议应用层解析控制模块280根据检测结果进行调用相应的协议,另外的协议则不被调用,这样可以节省其内的随机访问存储器的空间。
图2为图1中的物理层模拟模块210在一个实施例中的结构框图。如图3所示,所述物理层模拟模块210包括SATA物理接口211、PCIE物理接口212、并行转串行模块213、发送驱动器模块214、模拟接收模块215、数据时钟恢复模块216、协议判定模块217和本地时钟产生模块218。
所述SATA物理接口211与SATA主机100a对接以进行数据交互,所述PCIE物理接口212与PCIE主机100b对接以进行数据交互。
所述模拟接收模块215接收来自SATA物理接口211或PCIE物理接口212的数据。所述数据时钟恢复模块216根据来自所述模拟接收模块215的数据恢复出恢复时钟,并根据所述恢复时钟进行数据恢复并得到并行恢复数据。所述协议判定模块217根据所述恢复数据可以判定当前的工作协议,并藉此来检测SATA物理接口和PCIE物理接口中的哪个有主机对接。
所述并行转串行模块213用于接收来自负责将来自SATA物理层数字模块220或PCIE物理层数字模块250的低速并行信号转换成高速串行信号,并将所述高速串行信号经由发送驱动器模块214的驱动后发送给SATA物理接口211或PCIE物理接口212。
在判定当前工作协议为SATA协议时,所述双界面存储控制器200进入SATA模式,此时所述本地时钟产生模块218根据参考时钟CLKref产生第一本地时钟CLKloc1,所述并行转串行模块213基于所述第一本地时钟CLKloc1进行低速并行信号到高速串行信号的转换,以得到符合SATA协议的高速串行信号。在判定当前工作协议为PCIE协议时,所述双界面存储控制器200进入PCIE模式,此时所述本地时钟产生模块218根据参考时钟CLKref产生第二本地时钟CLKloc2,所述并行转串行模块213基于所述第二本地时钟CLKloc2进行低速并行信号到高速串行信号的转换,以得到符合PCIE协议的高速串行信号。其中第一本地时钟和第二本地时钟的频率不同。
无论是在SATA模式,还是在PICE模式下,所述物理层模拟模块210中的并行转串行模块213、发送驱动器模块214、模拟接收模块215、数据时钟恢复模块216等主要模块都可以实现共享,从而可以简化设计,同时也能降低设计和生产成本,提高使用效率。
图3为本发明中的双界面存储控制器系统在另一个实施例中的结构框图。图3中示出的双界面存储控制器与图1中示出的双界面存储控制器的区别在于:将图1中的PCIE物理层数字模块250和SATA物理层数字模块220与物理层模拟模块210合在一起形成图3中的物理层模块310。这是由于PCIE物理层数字模块250和SATA物理层数字模块220在结构上基本类似,因此为了进一步的优化结构,可以将PCIE物理层数字模块250和SATA物理层数字模块220也进行共享,从而形成单独的物理层模块410。在SATA模式下,关闭PCIE链路层模块和PCIE事物层模块的时钟,在PCI模式下,关闭SATA链路层模块和SATA传输层模块的时钟。
图4为图3中的物理层模块310在一个实施例中的结构框图。如图4所示,所述物理层模块310与图2中的物理层模拟模块210的区别在于:其除了包括SATA物理接口211、PCIE物理接口212、并行转串行模块213、发送驱动器模块214、模拟接收模块215、数据时钟恢复模块216、协议判定模块217和本地时钟产生模块218,还包括数据发送缓冲模块311、特殊序列检测模块312、接收数据对齐模块314和弹性缓冲模块315。
其中图4中的SATA物理接口211、PCIE物理接口212、并行转串行模块213、发送驱动器模块214、模拟接收模块215、数据时钟恢复模块216、协议判定模块217和本地时钟产生模块218与图2中的对应模块的作用相同,此处不再赘述。所述数据发送缓冲模块311缓存来自SATA链路层模块230或PCIE链路层模块240的并行数据。所述特殊序列检测模块312将来自数据时钟恢复模块216的恢复数据与SATA标准序列或PCIE标准序列进行对比以确定平移位数。所述接收数据对齐模块314根据所述平移位数对来自数据时钟恢复模块216的恢复数据进行平移对齐。所述弹性缓冲模块315缓存来自所述接收数据对齐模块314的数据,并将数据输出给SATA链路层模块230或PCIE链路层模块260。
上文对本发明进行了足够详细的具有一定特殊性的描述。所属领域内的普通技术人员应该理解,实施例中的描述仅仅是示例性的,在不偏离本发明的真实精神和范围的前提下做出所有改变都应该属于本发明的保护范围。本发明所要求保护的范围是由所述的权利要求书进行限定的,而不是由实施例中的上述描述来限定的。