基于sync机制的sata控制器与闪存控制器间的传输装置及方法

文档序号:6444513阅读:287来源:国知局
专利名称:基于 sync 机制的sata 控制器与闪存控制器间的传输装置及方法
技术领域
本发明涉及SATA控制器与闪存控制器间的传输技术,特别是涉及一种基于SYNC机制的SATA控制器与闪存控制器间的传输装置及方法。
背景技术
当前固态硬盘中SATA控制器与闪存控制器之间的传输方法中,每一次的Host主机读写请求,SATA控制器和闪存控制器都有中断产生,这种方法不足之处是中断产生次数太多,这使得系统的延迟增加,因此,急需提出一种传输方法,来解决中断延迟,从而大大提高SATA接口固态硬盘的传输速度。

发明内容
本发明的目的在于提供一种基于SYNC机制的SATA控制器与闪存控制器间的传输装置及方法,用于解决现有技术中中断产生次数太多,导致系统的延迟增加,以至于无法提高SATA接口固态硬盘的传输速度的问题。为了实现上述目的,本发明提供一种基于SYNC机制的SATA控制器与闪存控制器间的传输装置,应用于固态硬盘中SATA控制器与闪存控制器之间的数据传输,其特征在于,包括设置于所述SATA控制器上的第一 Trigger模块、设置所述闪存控制器上的第二Trigger 模块;所述第一 Trigger模块、所述第二 Trigger模块采用PRD格式实现所述SATA控制器与所述闪存控制器之间的数据传输。所述的传输装置,其中,还包括一数据块,为所述SATA控制器与所述闪存控制器之间的数据读写缓冲区。所述的传输装置,其中,所述SATA控制器接收主机发送的写命令,并解析该写命令,获取所述数据读写缓冲区的首地址;所述SATA控制器的DMA从主机接收数据,并写入到所述数据读写缓冲区;在写入完成后,所述第一 Trigger模块发出信号通知所述闪存控制器;所述第二 Trigger模块获取所述数据读写缓冲区的首地址,并发送至所述闪存控制器的DMA ;所述闪存控制器的DMA从所述数据读写缓冲区读取数据,并写入到闪存中;在所述闪存控制器的DMA写入完成后,所述第二 Trigger模块发出信号通知所述SATA控制器写命令完成;所述第一 Trigger模块向主机发送完成状态。所述的传输装置,其中,所述SATA控制器接收主机发送的读命令,并解析该读命令,获取所述数据读写缓冲区的首地址;所述第一 Trigger模块发出信号通知所述闪存控制器;所述第二 Trigger模块获取所述数据读写缓冲区的首地址,并发送至所述闪存控制器的DMA ;所述闪存控制器的DMA从闪存中读取数据,并写入到所述数据读写缓冲区中;在完成读取数据后,所述第二 Trigger模块发出信号通知所述SATA控制器读命令完成;所述第一 Trigger模块启动所述SATA控制器的DMA,从所述数据读写缓冲区中读取数据,并发送给主机。所述的传输装置,其中,所述闪存控制器为NFC闪存控制器。为了实现上述目的,本发明提供一种基于SYNC机制的SATA控制器与闪存控制器间的传输方法,应用于固态硬盘中SATA控制器与闪存控制器之间的数据传输,其特征在于,包括步骤一,在所述SATA控制器上设置第一 Trigger模块,在所述闪存控制器上设置第二 Trigger模块;步骤二,所述第一 Trigger模块、所述第二 Trigger模块采用PRD格式实现所述SATA控制器与所述闪存控制器之间的数据传输。所述的传输方法,其中,所述步骤一中,还包括一数据块,为所述SATA控制器与所述闪存控制器之间的数据读写缓冲区。所述的传输方法,其中,所述步骤二中,还包括主机的写过程,具体是所述SATA控制器接收主机发送的写命令,并解析该写命令,获取所述数据读写缓冲区的首地址;所述SATA控制器的DMA从主机接收数据,并写入到所述数据读写缓冲区;在写入完成后,所述第一 Trigger模块发出信号通知所述闪存控制器;所述第二 Trigger模块获取所述数据读写缓冲区的首地址,并发送至所述闪存控制器的DMA ;所述闪存控制器的DMA从所述数据读写缓冲区读取数据,并写入到闪存中;在所述闪存控制器的DMA写入完成后,所述第二 Trigger模块发出信号通知所述SATA控制器写命令完成;所述第一 Trigger模块向主机发送完成状态。所述的传输方法,其中,所述步骤二中,还包括主机的读过程,具体是所述SATA控制器接收主机发送的读命令,并解析该读命令,获取所述数据读写缓冲区的首地址;所述第一 Trigger模块发出信号通知所述闪存控制器;所述第二 Trigger模块获取所述数据读写缓冲区的首地址,并发送至所述闪存控制器的DMA ;所述闪存控制器的DMA从闪存中读取数据,并写入到所述数据读写缓冲区中;在完成读取数据后,所述第二 Trigger模块发出信号通知所述SATA控制器读命令完成;所述第一 Trigger模块启动所述SATA控制器的DMA,从所述数据读写缓冲区中读取数据,并发送给主机。所述的传输方法,其中,所述步骤二中,所述闪存控制器为NFC闪存控制器。
与现有技术相比,本发明的有益技术效果是 本发明基于SYNC (Synchronous,同步的)机制,添加了 Trigger硬件结构,使得SATA控制器与闪存控制器之间通过SYNC机制相互传输数据,无需中断产生和软件参与查询状态,从而提高SATA接口固态硬盘的数据传输率。


图1是现有SATA控制器与闪存控制器间的传输方式示意图;图2是本发明基于SYNC机制的SATA控制器与闪存控制器间的传输装置结构图;图3是本发明的Trigger模块的硬件结构图;图4是本发明基于SYNC机制的SATA控制器与闪存控制器间的写过程流程图;图5是本发明基于SYNC机制的SATA控制器与闪存控制器间的读过程流程图。
具体实施例方式以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。如图2所示,是本发明基于SYNC机制的SATA控制器与闪存控制器间的传输装置结构图。该传输装置应用于固态硬盘中SATA控制器与闪存控制器之间的数据传输,用于使得SATA控制器20与闪存控制器30之间通过SYNC机制相互传输数据,包括第一Trigger 模块 201、第二 Trigger 模块 301。进一步地,闪存控制器30可以是NFC闪存控制器。第一 Trigger模块201,设置于SATA控制器20上,用于基于SYNC机制实现SATA控制器20与NFC闪存控制器30之间的数据传输。第二 Trigger模块301,设置于NFC闪存控制器30上,用于基于SYNC机制实现NFC闪存控制器30与SATA控制器20之间的数据传输。进一步地,SATA控制器20还包括DMA模块202 (简称为DMA 202) ;NFC闪存控制器30还包括DMA模块302 (简称为DMA 302)。其中,DMA为直接内存存取(Direct MemoryAccess)ο第一 Trigger模块201、第二 Trigger模块301实现SATA控制器20与NFC闪存控制器30之间传输数据采用PRD格式。进一步地,PRD格式见下表1所示表 1
Sync Flag
Data Block Address进一步地,PRD格式中的Sync Flags见下表2所示表 2
BitsDescription31 7Resv6 4Flash Channel3NFC Rd Done2NFC Wr Done1SATA Rx Request0SATA Tx Done其中Flash Channel 对应到 32 个 NAND Flash (闪存)40 的片选;
6
NFC Rd Done =DMA 302完成读数据后,第二 Trigger模块301会将此标记位置1 ;NFC Wr Done =DMA 302完成写数据后,第二 Trigger模块301会将此标记位置1 ;SATA Rx Reques :SATA控制器20在接收到Host主机10的写命令后,第一 Trigger模块201将此标记位置1 ;SATA Tx Done =DMA 202完全接收到Host主机10发送过来的数据后,第一Trigger模块201将此标记位置1。进一步地,PRD格式中的Data Block Address,是读写数据的缓冲区首地址,第一Trigger模块201、第二 Trigger模块301解析该地址,并分别发送给相应的DMA 202、DMA302,由DMA 202、DMA 302向该地址读/写数据,该地址是32位长度。该Data Block Address的格式见下表3所示表 权利要求
1.一种基于SYNC机制的SATA控制器与闪存控制器间的传输装置,应用于固态硬盘中SATA控制器与闪存控制器之间的数据传输,其特征在于,包括设置于所述SATA控制器上的第一 Trigger模块、设置所述闪存控制器上的第二 Trigger模块;所述第一 Trigger模块、所述第二 Trigger模块采用PRD格式实现所述SATA控制器与所述闪存控制器之间的数据传输。
2.根据权利要求1所述的传输装置,其特征在于,还包括一数据块,为所述SATA控制器与所述闪存控制器之间的数据读写缓冲区。
3.根据权利要求2所述的传输装置,其特征在于,所述SATA控制器接收主机发送的写命令,并解析该写命令,获取所述数据读写缓冲区的首地址;所述SATA控制器的DMA从主机接收数据,并写入到所述数据读写缓冲区;在写入完成后,所述第一 Trigger模块发出信号通知所述闪存控制器;所述第二 Trigger模块获取所述数据读写缓冲区的首地址,并发送至所述闪存控制器的DMA ;所述闪存控制器的DMA从所述数据读写缓冲区读取数据,并写入到闪存中;在所述闪存控制器的DMA写入完成后,所述第二Trigger模块发出信号通知所述SATA控制器写命令完成;所述第一 Trigger模块向主机发送完成状态。
4.根据权利要求2或3所述的传输装置,其特征在于,所述SATA控制器接收主机发送的读命令,并解析该读命令,获取所述数据读写缓冲区的首地址;所述第一 Trigger模块发出信号通知所述闪存控制器;所述第二 Trigger模块获取所述数据读写缓冲区的首地址,并发送至所述闪存控制器的DMA ;所述闪存控制器的DMA从闪存中读取数据,并写入到所述数据读写缓冲区中;在完成读取数据后,所述第二 Trigger模块发出信号通知所述SATA控制器读命令完成;所述第一 Trigger模块启动所述SATA控制器的DMA,从所述数据读写缓冲区中读取数据,并发送给主机。
5.根据权利要求1、2或3所述的传输装置,其特征在于,所述闪存控制器为NFC闪存控制器。
6.一种基于SYNC机制的SATA控制器与闪存控制器间的传输方法,应用于固态硬盘中SATA控制器与闪存控制器之间的数据传输,其特征在于,包括步骤一,在所述SATA控制器上设置第一 Trigger模块,在所述闪存控制器上设置第二Trigger 模块;步骤二,所述第一 Trigger模块、所述第二 Trigger模块采用PRD格式实现所述SATA控制器与所述闪存控制器之间的数据传输。
7.根据权利要求6所述的传输方法,其特征在于,所述步骤一中,还包括一数据块,为所述SATA控制器与所述闪存控制器之间的数据读写缓冲区。
8.根据权利要求7所述的传输方法,其特征在于,所述步骤二中,还包括主机的写过程,具体是所述SATA控制器接收主机发送的写命令,并解析该写命令,获取所述数据读写缓冲区的首地址;所述SATA控制器的DMA从主机接收数据,并写入到所述数据读写缓冲区;在写入完成后,所述第一 Trigger模块发出信号通知所述闪存控制器;所述第二 Trigger模块获取所述数据读写缓冲区的首地址,并发送至所述闪存控制器的 DMA ;所述闪存控制器的DMA从所述数据读写缓冲区读取数据,并写入到闪存中;在所述闪存控制器的DMA写入完成后,所述第二 Trigger模块发出信号通知所述SATA控制器写命令完成;所述第一 Trigger模块向主机发送完成状态。
9.根据权利要求7或8所述的传输方法,其特征在于,所述步骤二中,还包括主机的读过程,具体是所述SATA控制器接收主机发送的读命令,并解析该读命令,获取所述数据读写缓冲区的首地址;所述第一 Trigger模块发出信号通知所述闪存控制器;所述第二 Trigger模块获取所述数据读写缓冲区的首地址,并发送至所述闪存控制器的 DMA ;所述闪存控制器的DMA从闪存中读取数据,并写入到所述数据读写缓冲区中;在完成读取数据后,所述第二 Trigger模块发出信号通知所述SATA控制器读命令完成;所述第一 Trigger模块启动所述SATA控制器的DMA,从所述数据读写缓冲区中读取数据,并发送给主机。
10.根据权利要求6、7或8所述的传输方法,其特征在于,所述步骤二中,所述闪存控制器为NFC闪存控制器。
全文摘要
本发明公开了一种基于SYNC机制的SATA控制器与闪存控制器间的传输装置及方法,应用于固态硬盘中SATA控制器与闪存控制器之间的数据传输,该装置包括设置于所述SATA控制器上的第一Trigger模块、设置所述闪存控制器上的第二Trigger模块;所述第一Trigger模块、所述第二Trigger模块采用PRD格式实现所述SATA控制器与所述闪存控制器之间的数据传输。本发明基于SYNC机制,添加了Trigger硬件结构,使得SATA控制器与闪存控制器之间通过SYNC机制相互传输数据,无需中断产生和软件参与查询状态,从而提高SATA接口固态硬盘的数据传输率。
文档编号G06F13/28GK102591825SQ20111045556
公开日2012年7月18日 申请日期2011年12月30日 优先权日2011年12月30日
发明者傅俊诚, 韩道静 申请人:记忆科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1