一种基于NANDFLASH接口的双通道ATA协议桥接装置的制作方法

文档序号:15118154发布日期:2018-08-07 22:02阅读:385来源:国知局

本发明涉及一种基于NAND FLASH接口的双通道ATA协议桥接装置,属于微电子技术领域。



背景技术:

NAND FLASH MEMORY具有存储单元体积小、编程速度快、擦除时间短等优点,应用领域越来越广泛,是目前业界非常流行的存储介质。根据生产厂家的不同,NAND FLASH接口标准分为ONFI、Toggle两种,英特尔、镁光、海力士采用ONFI接口标准;东芝、三星则采用Toggle标准。

目前,已经出现了多种基于此接口技术的主机端控制器,如中国专利CN105138470A公开的一种多通道NAND FLASH控制器;中国专利CN204270293U公开的多通道FLASH控制器;中国专利CN101958152A公开的一种NAND FLASH控制器及其应用。

因为NAND FLASH采用多层单元技术,相对于单层单元,加倍的提高了存储密度,使得相邻数据电压之间的空间变小,可靠性变差,因此需要更精确地控制和检测每个存储单元的电压,因此需要纠错码(Error Correction Code,ECC)技术的使用能够有效降低 NAND 闪存单元的原始误码率,提高系统可靠性。BCH码是ECC纠错技术的一种,具有多位随机错误的检错和纠错能力,从而提高存储数据的可靠性,如中国专利CN101800560A 公开了Flash控制器中BCH编译码的纠错能力扩展方法。

硬盘接口是主机和硬盘之间传输命令和数据的连接部件,在当今消费市场中,ATA协议作为全球硬盘标准,在接口电路上分为并行ATA(PATA)、串行ATA(SATA)两种方式。PATA采用并行总线的数据传输方式,最高传输速率可达150MB/s,可以满足基于IDE、CF接口的低速、小容量存储设备的应用场景;SATA是一种高速的串行总线,不仅将接口总线从40帧减少到22帧,同时最高传输速率可达600MB/s,可以满足高速、大容量的应用场景。

而目前却没有一种将ONFI转PATA、ONFI转SATA、TOGGLE转PATA、TOGGLE转SATA四种应用功能的装置。



技术实现要素:

本发明为了克服以上技术的不足,提供了一种基于NAND FLASH接口的双通道ATA协议桥接装置,重点解决接口协议转换及传输效率的问题,用户只需要设计简单的驱动程序配置该装置中的相关参数,即可利用现存的低成本存储设备应用于新的存储系统中,完成ONFI转PATA、ONFI转SATA、TOGGLE转PATA、TOGGLE转SATA四种应用功能,灵活性强,应用前景广阔。

本发明克服其技术问题所采用的技术方案是:

一种基于NAND FLASH接口的双通道ATA协议桥接装置,包括:

FLASH接口转LOCAL接口子模块,负责控制与外部FLASH主机控制器进行数据的读写,同时转换为LOCAL总线进行传输;

BCH纠错码子模块,用于进行数据的纠错与编码;

ATA接口子模块,负责控制与外部硬盘进行数据的读写;

所述FLASH接口转LOCAL接口子模块与外部FLASH主机控制器之间、FLASH接口转LOCAL接口子模块与BCH纠错码子模块之间、BCH纠错码子模块与ATA接口子模块之间,以及ATA接口子模块与外部硬盘之间均为双向通信连接。

根据本发明优选的,FLASH接口转LOCAL接口子模块与外部FLASH主机控制器相连接的一端为FLASH接口端,FLASH接口转LOCAL接口子模块与BCH纠错码子模块相连接的一端为LOCAL接口端,所述FLASH接口转LOCAL接口子模块包括:

接口模块NAND_IF,负责完成将收发的命令和数据按照FLASH接口时序信息操作,采用双通道结构同时完成两个FLASH通道的命令和数据交互;

数据通路控制模块DATA_PATH,当NAND_IF采用双通道结构进行数据读写时,DATA_PATH负责对双通道的数据进行排序与缓存,完成DATA_PATH两端数据流速度匹配;

逻辑通路控制模块CTRL_FLW,负责接收、解析主机控制器端发送的指令,将读写控制信号传递到DATA_PATH模块,同时根据解析出的命令码产生相应的回复状态返回给主机控制器端;

初始化控制模块INIT_CTRL,负责完成FLASH接口转LOCAL接口子模块两端的初始化命令交互,完成从主机控制器端FLASH接口数据传输模式、ATA传输模式、ECC是否使能、读写数据是否开启去反功能、读写数据是否开启加解扰功能和加解扰种子参数配置;

所述DATA_PATH依次通过读数据缓存器模块RDFIFO、读数据取反模块Rdata_inv和解扰模块Descrambler读取NAND_IF的数据,所述DATA_PATH依次通过加扰模块Scrambler、写数据取反模块Wdata_inv和写数据缓存模块WRFIFO将数据写入NAND_IF。

根据本发明优选的,所述FLASH接口转LOCAL接口子模块的FLASH接口端数量根据硬盘接口的不同而不同,以应用于不同宽带要求的场合:当采用PATA硬盘接口时,则使用单通道FLASH接口即可保证系统宽带要求;当采用SATA硬盘接口时,则使用双通道FLASH接口保证系统宽带要求。

根据本发明优选的,所述BCH纠错码子模块包括:运算模块BCH_OPR、数据控制模块BCH_CTRL、LOCAL端写数据缓存模块WR_FIFO、LOCAL端读数据缓存模块RD_FIFO、ATA端写数据缓存模块ATA_WR_FIFO以及ATA端读数据缓存模块ATA_RD_FIFO;当数据从FLASH端写入到ATA端时,数据首先进入WR_FIFO中,然后通过多路选择器选择直接进入ATA_WR_FIFO或经过BCH_OPR后再进入ATA_WR_FIFO;当数据从ATA端读出到FLASH端时,数据首先进入ATA_RD_FIFO中,然后通过多路选择器选择直接进入RD_FIFO或经过BCH_OPR后再进入RD_FIFO。

根据本发明优选的,当数据从FLASH端写入到ATA端时,数据首先进入WR_FIFO中,然后通过多路选择器,由写使能旁路使能信号w_bypass_en选择是否经过BCH_OPR进行纠错:

若w_bypass_en信号为低电平0,则数据不经过BCH_OPR纠错,直接进入ATA_WR_FIFO,等待ATA端数据传输;

若w_bypass_en信号为高电平1,则与数据相对应的BCH码值输入到BCH_OPR:若BCH错误校验多项式结果为0,则表明输入数据无错误,继续输出数据到ATA_WR_FIFO;若BCH错误校验多项式结果不为0,则表示数据在传输过程中出现了错误,进入纠错阶段,如果错误数据位在可纠错个数范围内,则置位bch错误发生标志位error_status_ok为1,纠错完成后,数据继续进入ATA_WR_FIFO,若错误数据位超过可纠错个数范围,则置位bch错误发生标志位error_status_fail为1,同时置位bch错误停止标志位error_stop停止向后的数据传输,等待CTRL_FLW处理。

根据本发明优选的,当数据从ATA端读出到FLASH端时,数据首先进入ATA_RD_FIFO中,然后通过多路选择器,由读使能旁路使能信号r_bypass_en选择是否经过BCH_OPR进行编码:

若r_bypass_en信号为低电平0,则数据不经过BCH_OPR编码,直接进入到RD_FIFO,等待FLASH端数据传输;

若r_bypass_en信号为高电平1,则数据进入BCH_OPR,同时根据输入数据计算出BCH码值,将数据以及BCH码值继续输出数据到RD_FIFO。

根据本发明优选的,所述ATA接口子模块包括:SATA协议控制模块SATA_CTRL、PATA协议控制模块PATA_CTRL、串行ATA接口电路模块SATA_PHY和并行ATA接口电路模块PATA_PHY;所述SATA_CTRL和PATA_CTRL通过多路选择器与BCH纠错码子模块进行数据交互,SATA_PHY的一端与SATA_CTRL双向连接、另一端与外部硬盘SATA DEVICE双向连接,PATA_PHY的一端与PATA_CTRL双向连接、另一端与外部硬盘PATA DEVICE双向连接。

根据本发明优选的,所述SATA_PHY完成串行ATA物理层接口时序操作,包含两条高速单工通道的低压差分信号收发器,分别负责接收和发送数据,支持150MB/s、300MB/s和600MB/s速率传输模式,采用8B/10B编码方式,保证底层数据完整性;所述PATA_PHY完成并行ATA物理层接口时序操作,最高支持150MB/s速率传输,支持时钟数据单沿模式SDR、时钟数据双沿模式DDR,采用循环冗余校验CRC保证底层数据完整性。

本发明的有益效果是:

1、用户只需要设计简单的驱动程序配置该装置中的相关参数,即可利用现存的低成本存储设备应用于新的存储系统中,完成ONFI转PATA、ONFI转SATA、TOGGLE转PATA、TOGGLE转SATA四种应用功能,重点解决了接口协议转换的问题,灵活性强,应用前景广阔。

2、FLASH接口端数量可配,应用于不同带宽要求的场合,还解决了传输效率的问题。当采用PATA接口时,则仅需要单通道FLASH接口即可保障系统带宽要求;当采用SATA接口时,则采用双通道FLASH接口保证系统带宽要求。

3、本发明的装置内部采用数据取反、加解扰功能,可降低PCB整机测试中的EMI难度。

4、本发明的装置内部采用ECC技术中的BCH码,与FLASH主控纠错技术一致,保证FLASH通道数据正确性,适用于对稳定性要求较高的场合。

附图说明

图1为本发明的原理示意图。

图2为本发明的FLASH接口转LOCAL接口子模块的结构示意图。

图3为本发明的BCH纠错码子模块的结构示意图。

图4为本发明的ATA接口子模块的结构示意图。

图1中:1、FLASH接口转LOCAL接口子模块,2、BCH纠错码子模块,3、ATA接口子模块。

图2中:101、NAND_IF,102、DATA_PATH,103、CTRL_FLW,104、INIT_CTRL,105、RDFIFO,106、Rdata_inv,107、Descrambler,108、Scrambler,109、Wdata_inv,110、WRFIFO。

图3中:201、BCH_OPR,202、BCH_CTRL,203、WR_FIFO,204、RD_FIFO,205、ATA_WR_FIFO,206、ATA_RD_FIFO。

图4中:301、SATA_CTRL,302、PATA_CTRL,303、SATA_PHY,304、PATA_PHY。

具体实施方式

为了便于本领域人员更好的理解本发明,下面结合附图和具体实施例对本发明做进一步详细说明,下述仅是示例性的不限定本发明的保护范围。

本发明基于NAND FLASH接口的双通道ATA协议桥接装置,如图1所示,包括:FLASH接口转LOCAL接口子模块1、BCH纠错码子模块2和ATA接口子模块3。所述FLASH接口转LOCAL接口子模块1负责控制与外部FLASH主机控制器进行数据的读写,同时转换为LOCAL总线进行传输,FLASH接口转LOCAL接口子模块1将从主机控制器端接收到的命令进行读取、分析、执行、反馈等操作,将FLASH协议层的命令分解为命令传输、地址传输、读写数据传输;所述BCH纠错码子模块2用于进行数据的纠错与编码;所述ATA接口子模块3负责控制与外部硬盘进行数据的读写。所述FLASH接口转LOCAL接口子模块1与外部FLASH主机控制器之间、FLASH接口转LOCAL接口子模块1与BCH纠错码子模块2之间、BCH纠错码子模块2与ATA接口子模块3之间,以及ATA接口子模块3与外部硬盘之间均为双向通信连接。

如图2所示,FLASH接口转LOCAL接口子模块1与外部FLASH主机控制器相连接的一端为FLASH接口端,FLASH接口转LOCAL接口子模块1与BCH纠错码子模块2相连接的一端为LOCAL接口端,所述FLASH接口转LOCAL接口子模块1包括:接口模块NAND_IF 101、数据通路控制模块DATA_PATH 102、逻辑通路控制模块CTRL_FLW 103和初始化控制模块INIT_CTRL 104。所述NAND_IF 101负责完成将收发的命令和数据按照FLASH接口时序信息操作,采用双通道结构同时完成两个FLASH通道的命令和数据交互;所述数据通路控制模块DATA_PATH 102,当NAND_IF 101采用双通道结构进行数据读写时,DATA_PATH 102负责对双通道的数据进行排序与缓存,完成DATA_PATH 102两端数据流速度匹配;所述CTRL_FLW 103负责接收、解析主机控制器端发送的指令,将读写控制信号传递到DATA_PATH模块 102,同时根据解析出的命令码产生相应的回复状态返回给主机控制器端;所述INIT_CTRL 104负责完成FLASH接口转LOCAL接口子模块1两端的初始化命令交互,完成从主机控制器端FLASH接口数据传输模式、ATA传输模式、ECC是否使能、读写数据是否开启去反功能、读写数据是否开启加解扰功能和加解扰种子参数配置。所述DATA_PATH 102依次通过读数据缓存器模块RDFIFO 105、读数据取反模块Rdata_inv 106和解扰模块Descrambler 107读取NAND_IF 101的数据,所述DATA_PATH 102依次通过加扰模块Scrambler 108、写数据取反模块Wdata_inv 109和写数据缓存模块WRFIFO 110将数据写入NAND_IF 101。

所述FLASH接口转LOCAL接口子模块1的FLASH接口端数量根据硬盘接口的不同而不同:当采用PATA硬盘接口时,则使用单通道FLASH接口;当采用SATA硬盘接口时,则使用双通道FLASH接口。

当数据在FLASH接口转LOCAL接口子模块1通道传输时,由于传输速率、传输方式、PCB布板的影响,会造成数据信号的不稳定传输现象,因为FLASH主机控制器端为了提高FLASH器件数据存储的稳定性,采用了ECC纠错技术中的BCH码,所以在该装置中也采用了BCH纠错码子模块2进行数据的纠错与编码。如图3所示,所述BCH纠错码子模块2包括:运算模块BCH_OPR 201、数据控制模块BCH_CTRL 202、LOCAL端写数据缓存模块WR_FIFO 203、LOCAL端读数据缓存模块RD_FIFO 204、ATA端写数据缓存模块ATA_WR_FIFO 205以及ATA端读数据缓存模块ATA_RD_FIFO 206,所述BCH_CTRL 202通过控制w_bypass_en、r_bypass_en使能信号为BCH_OPR 201选择对应的输入与输出通路。

当数据从FLASH端写入到ATA端时(即,当数据从外部主机控制端写入外部硬盘时),数据首先进入WR_FIFO 203中,然后通过多路选择器,由写使能旁路使能信号w_bypass_en选择是否经过BCH_OPR 201进行纠错:

若w_bypass_en信号为低电平0,则数据不经过BCH_OPR 201纠错,直接进入ATA_WR_FIFO 205,等待ATA端数据传输;

若w_bypass_en信号为高电平1,则与数据相对应的BCH码值输入到BCH_OPR 201:若BCH错误校验多项式结果为0,则表明输入数据无错误,继续输出数据到ATA_WR_FIFO 205;若BCH错误校验多项式结果不为0,则表示数据在传输过程中出现了错误,进入纠错阶段,如果错误数据位在可纠错个数范围内,则置位bch错误发生标志位error_status_ok为1,纠错完成后,数据继续进入ATA_WR_FIFO 205,若错误数据位超过可纠错个数范围,则置位bch错误发生标志位error_status_fail为1,同时置位bch错误停止标志位error_stop停止向后的数据传输,等待CTRL_FLW 103 处理。

当数据从ATA端读出到FLASH端时(即,当数据从外部硬盘读出到外部主机控制端时),数据首先进入ATA_RD_FIFO 206中,然后通过多路选择器,由读使能旁路使能信号r_bypass_en选择是否经过BCH_OPR 201进行编码:

若r_bypass_en信号为低电平0,则数据不经过BCH_OPR 201编码,直接进入到RD_FIFO 204,等待FLASH端数据传输;

若r_bypass_en信号为高电平1,则数据进入BCH_OPR 201,同时根据输入数据计算出BCH码值,将数据以及BCH码值继续输出数据到RD_FIFO 204。

如图4所示,所述ATA接口子模块3包括:SATA协议控制模块SATA_CTRL 301、PATA协议控制模块PATA_CTRL 302、串行ATA接口电路模块SATA_PHY 303和并行ATA接口电路模块PATA_PHY 304。所述SATA_CTRL 301和PATA_CTRL 302通过多路选择器与BCH纠错码子模块2进行数据交互,SATA_PHY 303的一端与SATA_CTRL 301双向连接、另一端与外部硬盘SATA DEVICE双向连接,PATA_PHY 304的一端与PATA_CTRL 302双向连接、另一端与外部硬盘PATA DEVICE双向连接。

所述SATA_PHY 303完成串行ATA物理层接口时序操作,包含两条高速单工通道的低压差分信号收发器,分别负责接收和发送数据,支持150MB/s、300MB/s和600MB/s速率传输模式,采用8B/10B编码方式,保证底层数据完整性;所述PATA_PHY 304完成并行ATA物理层接口时序操作,最高支持150MB/s速率传输,支持时钟数据单沿模式SDR、时钟数据双沿模式DDR,采用循环冗余校验CRC保证底层数据完整性。

以上仅描述了本发明的基本原理和优选实施方式,本领域人员可以根据上述描述作出许多变化和改进,这些变化和改进应该属于本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1