CN103885909B - 基于原生PCIe接口的SSD控制器及其控制方法 - Google Patents
基于原生PCIe接口的SSD控制器及其控制方法 Download PDFInfo
- Publication number
- CN103885909B CN103885909B CN201410113750.XA CN201410113750A CN103885909B CN 103885909 B CN103885909 B CN 103885909B CN 201410113750 A CN201410113750 A CN 201410113750A CN 103885909 B CN103885909 B CN 103885909B
- Authority
- CN
- China
- Prior art keywords
- data
- controller
- ssd
- ddr
- controllers
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开了一种基于原生PCIe接口的SSD控制器及其控制方法,其特征在于,包括如下步骤:当CPU向SSD写数据时,DMA控制器将PCIe终端里的PCIe数据流导入到DDR控制器中,然后缓存在DDR中,同时CPU将数据流的描述信息通过DMA控制器传递给NandFlash控制器,地址控制模块收到描述信息之后判断数据的有效性,然后从DDR中将数据流经过ECC模块校验以及通过LLD驱动模块将数据流转换成ONFI接口时序的数据流写入SSD。原生PCIe接口的固态硬盘控制器无中间协议转换,开销小,带宽浪费少;可以并行处理,SSD读写速度快;无机械结构、寿命长,抗恶劣环境能力强,满足工业级存储需求;结构简单,容量大小配置灵活,不受限于NandFlash芯片的更新换代。
Description
技术领域
本发明涉及一种SSD控制器及其控制方法,尤其涉及一种基于原生PCIe接口的SSD控制器及其控制方法。
背景技术
在工业控制领域的存储设备中通常采用工业级机械硬盘,传统机械硬盘有运动机构,盘片在内部高速转动,磁头悬浮在盘片上移动实现数据读写,这种结构从根本上导致机械硬盘的读写速度慢,特别是小文件随机读写速度更慢。另外机械部件的寿命会受到高强度、高温、震动等恶劣环境的严重影响,危及数据安全性,同时机械运动结构导致传统机械硬盘的能耗比较高。
随着电子技术的发展,Flash Memory(闪存)的生产工艺和成本逐渐降低,应用越来越广泛,SSD(固态硬盘)开始得到发展和使用,SSD采用Flash Memory芯片取代传统机械硬盘的盘片、磁头的机械结构,具有速度快、读写延迟小、随机性能高的特点,抵抗高温、震动的能力较机械硬盘有明显提升。
然而目前这类SSD的控制器都使用了与机械硬盘相同的SATA、SAS等传统接口,与中央处理器的总线接口(一般为PCIe)进行数据读写时,需经过PCIe与SATA(SAS)然后到SSD的来回协议转换过程,存在协议开销,SATA(SAS)的性能已经成为影响整个存储系统性能的关键因素,传统结构的SSD控制器无法发挥出PCIe和高速Flash Memory 芯片的潜力。
发明内容
针对上述问题,本发明提供一种基于原生PCIe接口的SSD控制器及其控制方法,与中央处理器之间通信时无中间协议转换,开销小,带宽浪费少,可并行处理,SSD读写速度快。
为实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:
基于原生PCIe接口的SSD控制器,其特征在于,包括与PCIe接口相连的PCIe终端,控制SSD读写操作的Nand Flash控制器,所述PCIe终端与DMA控制器相连,所述DMA控制器分别与DDR控制器和Nand Flash控制器相连,所述DDR控制器与用于存储需要被读入SSD或从SSD写出的数据流的外界缓存DDR相连,所述DDR控制器与Nand Flash控制器相连,所述NandFlash控制器包括电气相连的地址控制模块和LLD驱动模块,所述地址控制模块用于对待写入或读取的数据的映射地址与NandFlash实际地址的相互转换,DMA控制器与地址控制模块相连并将要读取或写入的数据流的描述信息发送给地址控制模块,所述LLD驱动模块用于将DDR中缓存的数据流转换成ONFI接口时序的数据流写入SSD。
使用外挂的高速DDR作为数据的缓冲,地址控制模块实现外部映射地址与NandFlash地址的相互转换以及读写控制,中间没有经过其他协议开销,开销小,带宽浪费少。而且无机械结构、寿命长,抗恶劣环境能力强,满足工业级存储需求,SSD读写速度快,容量大小配置灵活,不受限于SSD的更新换代。
一种基于原生PCIe接口的SSD控制器的控制方法,其特征在于,包括如下步骤:
当CPU向SSD写数据时,DMA控制器将PCIe终端里的PCIe数据流导入到DDR控制器中,然后缓存在DDR中,同时CPU将数据流的描述信息通过DMA控制器传递给NandFlash控制器,地址控制模块收到描述信息之后判断数据的有效性,如果数据有效,则从DDR中将数据流经过ECC模块校验以及通过LLD驱动模块将数据流转换成ONFI接口时序的数据流写入SSD。
当CPU向SSD读数据时,CPU将要读取数据的描述信息发送给DMA控制器,DMA控制器将描述信息发送给NandFlash控制器,NandFlash控制器收到描述信息之后,地址控制模块将描述信息转换成SSD中数据相对应的地址并开始读SSD中的数据,经过ECC模块校验之后通过DDR控制器存入DDR缓存中,缓存结束后,NandFlash控制器向DMA控制器发送通知信息,DMA控制器开始以DMA方式将数据从DDR中经PCIe终端发送给CPU。
本发明的有益效果是:原生PCIe接口的固态硬盘控制器无中间协议转换,开销小,带宽浪费少;可以并行处理,SSD读写速度快;无机械结构、寿命长,抗恶劣环境能力强,满足工业级存储需求;结构简单,容量大小配置灵活,不受限于NandFlash芯片的更新换代。
附图说明
图1是本发明一种基于原生PCIe接口的SSD控制器的结构框图;
图2是本发明一种基于原生PCIe接口的SSD控制器的内部结构框图;
图3是本发明Nand Flash控制器的内部结构框图;
图4是地址控制模块的内部结构框图。
具体实施方式
下面结合附图和具体的实施例对本发明技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
如图1、图2、图3和图4所示,是一种基于FPGA实现的原生PCIe接口的SSD控制器,由于通常所说的SSD是采用FLASH芯片作为存储介质,因此本实施例以常用的Nand Flash作为SSD进行具体的介绍。
SSD控制器包括PCIe终端、DMA控制器、Nand Flash控制器和DDR控制器,其中利用FPGA作为PCIe总线EndPoint终端和Nand Flash控制器,用FPGA外挂的高速DDR作为数据的缓冲。PCIe终端包括标准PCIe物理层,数据链路层,传输层,与PCIe接口相连,主要用于与CPU实现PCIe总线协议的数据传输。DMA控制器主要完成的功能是DMA功能以及一些数据传输的控制功能。
Nand Flash控制器控制Nand Flash读写操作,PCIe终端与DMA控制器相连,DMA控制器分别与DDR控制器和Nand Flash控制器相连,DDR控制器与外界缓存DDR相连,DDR控制器与Nand Flash控制器相连,DDR控制器和DDR存储器实现高速数据的缓存功能,DDR控制器是双口操作。Nand Flash控制器包括地址控制模块和底层LLD驱动模块,这里所说的LLD即底层驱动的含义。优选Nand Flash控制器还包括使用FPGA内部双口RAM实现数据二级缓存的二级缓存存储器,其分别与DDR控制器和地址控制模块相连,在Nand Flash进行读写操作时进行缓存。ECC模块用于地址控制模块和LLD驱动模块之间传输数据时进行数据校验和恢复,当地址控制模块和LLD驱动模块之间传输地址信息时则无须校验。
地址控制模块如图4所示,包括描述信息寄存器、数据的读写控制模块、映射地址转换模块,描述信息寄存器与DMA控制器相连用于存放待写入或读出的数据的描述信息,描述信息寄存器通过映射地址转换模块与LLD驱动模块之间传输地址信息,通过读写控制模块与LLD驱动模块之间传输数据信息。地址控制模块的作用是将CPU待写入或读取的数据、描述信息寄存器中的映射地址信息转换成实际NandFlash中对应的地址信息,即外部映射地址与NandFlash的实际地址的相互转换(为了方便理解,我们将数据在NandFlash里的地址命为实际地址,而CPU中需要读取或写入的数据的地址命为映射地址),并控制二级缓存和LLD驱动模块之间的数据流传输,DMA控制器与地址控制模块相连并将要读或写的数据流的描述信息发送给地址控制模块,底层LLD驱动模块用于将DDR中缓存的数据流转换成ONFI(Open NAND Flash Interface:开放式NAND Flash接口,是NandFlash 的标准接口信号)接口时序的数据流写入SSD。
优选DMA控制器与若干个Nand Flash控制器相连,每个Nand Flash控制器分别与不超过16片的NandFlash相连。DMA控制器和NandFlash控制器可以并行的进行数据读写。使用了多个NandFlash控制器,这些NandFlash控制器可以完全独立的运行,并行的方式操作,DMA控制器和NandFlash控制器可以实现平行的数据读写。这种内部阵列的方式成倍的提升了ONFI接口的带宽,同时当应用需要的时候还可以作为数据备份使用,每个NandFlash控制器可以根据实际需求挂载最多16片NandFlash,灵活的容量配置使得本发明的SSD控制器具有更好的适用性和成本控制。
当CPU向SSD写数据时,DMA控制器将PCIe终端里的PCIe数据流导入到DDR控制器中,然后缓存在DDR中,同时CPU将数据流的描述信息,包括数据位置、长度信息,通过DMA控制器传递给NandFlash控制器,NandFlash控制器的地址控制模块收到描述信息之后判断数据的有效性,如果数据有效,则从DDR中将数据流经过ECC模块校验以及通过LLD驱动模块将数据流转换成ONFI接口时序的数据流写入SSD。写数据结束时根据NandFlash控制器的反馈实现坏块的判断,并向DMA控制器反馈。PCIe数据流首先被缓存在DDR中,NandFlash控制器将缓存中数据流不经过中间的协议转换过程直接转换为NandFlash 的标准接口信号,实现CPU端对Nand Flash 的读写数据操作,并且读写数据都可以使用DMA的方式。同时NandFlash控制器还支持ECC校验,坏块管理等功能。
当CPU需要读取数据的时候将相关的数据位置、长度信息写入NandFlash控制器的描述信息寄存器,基于FPGA的NandFlash控制器根据要求将数据从NandFlash中读出来,校验、放入缓存,然后以DMA的方式发送给CPU。具体为:当CPU向SSD读数据时,CPU将要读取数据的描述信息发送给DMA控制器,DMA控制器将描述信息发送给NandFlash控制器,NandFlash控制器收到描述信息之后,NandFlash控制器的地址控制模块将描述信息转换成SSD中数据相对应的地址并开始读SSD中的数据,经过ECC模块校验之后通过DDR控制器存入DDR缓存中,缓存结束后,NandFlash控制器向DMA控制器发送通知信息,DMA控制器开始以DMA方式将数据从DDR中经PCIe终端发送给CPU。这些操作都是以流水线的方式完成,可以并行处理,延迟小、速度快。
原生PCIe接口的固态硬盘控制器无中间协议转换,开销小,带宽浪费少;可以并行处理,SSD读写速度快;无机械结构、寿命长,抗恶劣环境能力强,满足工业级存储需求;结构简单,容量大小配置灵活,不受限于NandFlash芯片的更新换代。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或者等效流程变换,或者直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (3)
1.基于原生PCIe接口的SSD控制器,其特征在于,包括与PCIe接口相连的PCIe终端,控制SSD读写操作的Nand Flash控制器,所述PCIe终端与DMA控制器相连,所述DMA控制器分别与DDR控制器和Nand Flash控制器相连,所述DDR控制器与用于存储需要被读入SSD或从SSD写出的数据流的外界缓存DDR相连,所述DDR控制器与Nand Flash控制器相连,所述NandFlash控制器包括电气相连的地址控制模块和LLD驱动模块,所述地址控制模块用于对待写入或读取的数据的映射地址与NandFlash实际地址的相互转换,DMA控制器与地址控制模块相连并将要读取或写入的数据流的描述信息发送给地址控制模块,所述LLD驱动模块用于将DDR中缓存的数据流转换成ONFI接口时序的数据流写入SSD,所述Nand Flash控制器还包括与DDR控制器相连的二级缓存存储器,所述二级缓存存储器与地址控制模块相连,所述Nand Flash控制器还包括用于数据校验和恢复的ECC模块,所述ECC模块用于地址控制模块和LLD驱动模块之间数据传输的校验和恢复。
2.根据权利要求1所述的基于原生PCIe接口的SSD控制器,其特征在于,所述DMA控制器与若干个Nand Flash控制器相连,每个Nand Flash控制器分别与不超过16片的NandFlash相连。
3.一种基于原生PCIe接口的SSD控制器的控制方法,其特征在于,包括如下步骤:
当CPU向SSD写数据时,DMA控制器将PCIe终端里的PCIe数据流导入到DDR控制器中,然后缓存在DDR中,同时CPU将数据流的描述信息通过DMA控制器传递给NandFlash控制器,NandFlash控制器的地址控制模块收到描述信息之后判断数据的有效性,如果数据有效,则从DDR中将数据流经过ECC模块校验以及通过LLD驱动模块将数据流转换成ONFI接口时序的数据流写入SSD;
当CPU向SSD读数据时,CPU将要读取数据的描述信息发送给DMA控制器,DMA控制器将描述信息发送给NandFlash控制器,NandFlash控制器收到描述信息之后,地址控制模块将描述信息转换成SSD中数据相对应的地址并开始读SSD中的数据,经过ECC模块校验之后通过DDR控制器存入DDR缓存中,缓存结束后,NandFlash控制器向DMA控制器发送通知信息,DMA控制器开始以DMA方式将数据从DDR中经PCIe终端发送给CPU。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410113750.XA CN103885909B (zh) | 2014-03-26 | 2014-03-26 | 基于原生PCIe接口的SSD控制器及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410113750.XA CN103885909B (zh) | 2014-03-26 | 2014-03-26 | 基于原生PCIe接口的SSD控制器及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103885909A CN103885909A (zh) | 2014-06-25 |
CN103885909B true CN103885909B (zh) | 2017-07-11 |
Family
ID=50954809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410113750.XA Active CN103885909B (zh) | 2014-03-26 | 2014-03-26 | 基于原生PCIe接口的SSD控制器及其控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103885909B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108062285B (zh) * | 2014-06-27 | 2022-04-29 | 华为技术有限公司 | 一种访问NVMe存储设备的方法和NVMe存储设备 |
CN105204787B (zh) * | 2015-10-22 | 2017-03-08 | 湖南国科微电子股份有限公司 | 一种pcie ssd阵列的数据读方法、系统及读写方法 |
CN105335103B (zh) * | 2015-10-22 | 2017-05-03 | 湖南国科微电子股份有限公司 | 一种pcie ssd阵列的数据写方法及系统 |
CN106528492A (zh) * | 2016-10-27 | 2017-03-22 | 济南浪潮高新科技投资发展有限公司 | 一种基于fpga实现的高速大容量记录板卡 |
CN106776403A (zh) * | 2016-11-11 | 2017-05-31 | 济南浪潮高新科技投资发展有限公司 | 一种基于fpga的高速大容量存储系统及其实现方法 |
CN107729269A (zh) * | 2017-09-28 | 2018-02-23 | 西安交通大学 | 一种NANDFlash到FPGA内部块RAM的缓存方法 |
CN107995061A (zh) * | 2017-11-30 | 2018-05-04 | 北京卓讯科信技术有限公司 | 多规格10Gbps网络信号长时采集与回放系统和方法 |
US10740000B2 (en) | 2018-03-08 | 2020-08-11 | Western Digital Technologies, Inc. | Adaptive transaction layer packet for latency balancing |
US10558367B2 (en) | 2018-03-08 | 2020-02-11 | Western Digital Technologies, Inc. | Adaptive transaction layer packet for latency balancing |
CN108920391A (zh) * | 2018-06-26 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种Nand Flash转换接口及数据转换方法 |
CN109491934B (zh) * | 2018-09-28 | 2021-03-02 | 方一信息科技(上海)有限公司 | 一种集成计算功能的存储管理系统控制方法 |
CN111694777B (zh) * | 2019-03-11 | 2022-03-29 | 苏州微影激光技术有限公司 | 基于PCIe接口的DMA传输方法 |
CN112000595B (zh) * | 2020-07-06 | 2022-02-01 | 西安电子科技大学 | 一种阵列通道控制系统、方法、控制器、存储介质及应用 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101324867B (zh) * | 2007-06-16 | 2011-07-20 | 深圳市硅格半导体有限公司 | 基于半导体存储介质的数据管理装置及管理方法 |
US8230159B2 (en) * | 2009-03-27 | 2012-07-24 | Lsi Corporation | System, method, and computer program product for sending logical block address de-allocation status information |
CN101859283B (zh) * | 2010-03-22 | 2012-01-11 | 吴欣延 | 一种内置射频识别rfid加密的固态硬盘的控制方法 |
-
2014
- 2014-03-26 CN CN201410113750.XA patent/CN103885909B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN103885909A (zh) | 2014-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103885909B (zh) | 基于原生PCIe接口的SSD控制器及其控制方法 | |
JP5073667B2 (ja) | Slc及びmlcフラッシュメモリを使用するポータブルデータ記憶装置 | |
JP5566650B2 (ja) | 階層メモリ・アーキテクチャのためのメモリ・デバイス | |
JP5453661B2 (ja) | メモリシステムコントローラ | |
JP6163532B2 (ja) | メモリシステムコントローラを含む装置 | |
TWI729654B (zh) | 記憶體裝置及其操作方法及相關的非暫時性電腦可讀儲存媒體 | |
US8990462B2 (en) | Storage device, computing system including the same and data transferring method thereof | |
EP2715729B1 (en) | Apparatus including memory system controllers and related methods | |
TWI594121B (zh) | 使用資料壓縮的快取技術 | |
JP2014515534A (ja) | メモリシステムコントローラを含む装置および関連する方法 | |
TW200945037A (en) | Data writing method, and flash storage system and controller using the same | |
CN101354906B (zh) | 应用于固态硬盘的闪存控制器 | |
TW202038086A (zh) | 主機型快閃記憶體維護技術 | |
KR20210092844A (ko) | 호스트 상주 변환 레이어 유효성 검사 기술 | |
JP2015525398A5 (zh) | ||
US20130275652A1 (en) | Methods and structure for transferring additional parameters through a communication interface with limited parameter passing features | |
KR102645786B1 (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
US20230153006A1 (en) | Data processing method and data processing device | |
US11733920B2 (en) | NVMe simple copy command support using dummy virtual function | |
US20230393749A1 (en) | Method and device of storage data | |
US8656059B2 (en) | Methods for exchanging administrative information through a communication interface with limited administrative information exchange features | |
US11947834B2 (en) | Data storage devices with reduced buffering for storage access messages | |
US11934693B2 (en) | Detection of scattered data locations | |
US20240071448A1 (en) | Configurable data protection circuitry for memory devices | |
US20220405601A1 (en) | Enhanced digital signal processor (dsp) nand flash |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |