双口ram实现闪存控制器缓存的结构及实现该缓存的方法

文档序号:6466706阅读:355来源:国知局
专利名称:双口ram实现闪存控制器缓存的结构及实现该缓存的方法
技术领域
本发明涉及一种使用FPGA实现高速闪存控制器缓存的结构及实现该缓存的 方法,具体涉及一种使用FPGA内嵌双口RAM实现高速闪存控制器缓存的结构及实 现该缓存的方法。
背景技术
FPGA是英文Field Programmable Gate Array的縮写,即现场可编程门阵 列,它是在PAL、 GAL、 EPLD等可编程器件的基础上进一步发展的产物。由于闪 存电子盘的存储介质是FLASH芯片,作为闪存电子盘的核心部件,闪存控制器担 负整个电子盘的管理任务,闪存控制器的缓存在整个控制器的工作过程中使用 频率非常高,经常需要改变一块数据中某个字节的内容。目前公知的使用FPGA 实现闪存控制器缓存的方法是使用FIFO, g卩先进先出缓存,它是先写进去的 数据,在读取的时候先读出,因此要读取某个随机的数据时会读取许多在先写 进的数据,还需要筛选这些数据,实际应用中十分不便。现阶段,在数据传输 过程中,表现为无法实现随机地址读写,只能按顺序读写,应用十分不便, 数据读写的效率非常低。

发明内容
本发明的目的在于提供了一种使用FPGA内嵌双口RAM实现闪存控制器缓存 的结构及实现该缓存的方法,其解决了背景技术中无法实现随机地址读写,应 用不便以及数据读写的效率非常低的技术问题。
本发明的技术解决方案是
一种双口 RAM实现高速闪存控制器缓存的结构,包括IDE接口控制逻辑、 IDE寄存器、IDE缓存区、处理器、Flash接口控制逻辑、FLASH缓存区以及FPGA
外围电路,其特殊之处在于
其中IDE寄存器与IDE缓存区构成一个IDE接口缓存区,所述IDE接口缓 存区包括两个完全独立的控制口 ;
5所述IDE接口控制逻辑通过其中一个控制口与IDE接口缓存区连接,所述 处理器通过另一个控制口与IDE接口缓存区连接;
所述FLASH缓存区也包括两个完全独立的控制口 ;
所述Flash接口控制逻辑通过FLASH缓存区的其中一个控制口与FLASH缓 存区连接,所述处理器通过另一个控制口与FLASH缓存区连接。 上述IDE接口缓存区与FLASH缓存区彼此独立。 至少两组连接相同的FLASH缓存区和Flash控制接口逻辑。 上述IDE寄存器中包括读数据寄存器、写数据寄存器、错误寄存器、读扇 区数寄存器、写扇区数寄存器、读逻辑扇区号寄存器、写逻辑扇区号寄存器读 柱面号寄存器、写柱面号寄存器、读柱面号寄存器、写柱面号寄存器、读磁头 寄存器、写磁头寄存器、状态寄存器以及命令寄存器。
一种实现高速闪存控制器缓存的方法,其特殊之处在于实现缓存包括上 微机IDE控制器从闪存控制器读取数据过程和写入数据过程;
所述上微机IDE控制器从闪存控制器读取数据过程,具体包括以下步骤
A) 根据要读的扇区位置,上微机IDE控制器发送命令参数,IDE接口控制 逻辑接收数据并存放在IDE接口缓存区,上微机IDE控制器等待闪存控制器的 设备READY信号位置1后进入下一步;
B) 上微机IDE控制器向闪存控制器发读命令,IDE接口控制逻辑将命令字 写入IDE接口缓存区,同时IDE接口控制逻辑设置IDE状态寄存器的位忙信号 后进入下一步;
C) 工DE接口控制逻辑向处理器发中断信号,处理器从IDE接口缓存区读出命 令及其参数开始命令解析;
D) 处理器解析到是读命令,处理器把要读的扇区的物理地址写到FLASH缓 存区,同时处理器发触发信号给FLASH接口控制逻辑,通知FLASH接口控制逻 辑有命令到达;
E) FLASH接口控制逻辑收到触发信号,从FLASH缓存区读出命令及其参数, 解析命令,然后FLASH接口控制逻辑从指定的Nand Flash芯片中读出数据并存 放到FLASH缓存区,直到读完指定的数据后进入下一步;F) FLASH接口控制逻辑把本次读的结果写入FLASH缓存区,同时向处理器发 中断信号,告诉处理器要读的数据己经放到FLASH缓存区;
G) 处理器接收到中断信号后,把数据从FLASH缓存区读到IDE接口缓存区, 数据转移完成后,处理器向IDE接口控制逻辑发触发信号,告诉IDE接口控制 逻辑数据准备好;
H) IDE接口控制逻辑收到触发信号后,清控制寄存器中的位忙信号,同时向 上微机IDE控制器发中断信号;
I) 上微机IDE控制器收到中断信号,开始读取设备寄存器,如果数据准备 好上微机IDE控制器读取数据,直到所有的数据读完结束本次命令;
所述上微机IDE控制器从闪存控制器写入数据过程,具体包括以下步骤
A) 根据要写的扇区位置,上微机IDE控制器发送命令参数,IDE接口控制 逻辑接收数据并存放在IDE接口缓存区,上微机IDE控制器等待闪存控制器的 设备READY信号位置1后进入下一步;
B) 上微机IDE控制器向闪存控制器发写命令,IDE接口控制逻辑将命令字 写入IDE接口缓存区,同时IDE接口控制逻辑设置IDE状态寄存器的数据请求 位后进入下一步;
C) 上微机IDE控制器通过IDE接口控制逻辑向闪存控制器发送数据并保存 到IDE接口缓存区,当上微机IDE控制发送完数据后,IDE接口控制逻辑设置 状态寄存器中的位忙信号并清除数据请求信号,同时IDE接口控制逻辑发中断 信号到处理器;
D) 处理器接收到中断信号后,从IDE接口缓存区读出命令及其参数开始命 令解析,处理器解析到是写命令,处理器把要写的扇区的物理地址写到FLASH 缓存区,把数据从IDE接口缓存区读到FLASH缓存区,数据转移完成后,同时 处理器发触发信号给FLASH接口控制逻辑,通知FLASH接口控制逻辑有命令到 达;
E) FLASH接口控制逻辑收到触发信号,从FLASH缓存区读出命令及其参数, 解析命令,然后FLASH接口控制逻辑把FLASH缓存区中的数据写到定的Nand Flash芯片中,直到写完指定的数据后进入下一步;F) FLASH接口控制逻辑把本次写命令的结果状态写入FLASH缓存区,伺时向 处理器发中断信号,告诉处理器要写的数据已经写到Nand Flash芯片中;
G) 处理器接收到中断信号后,从FLASH缓存区读出本次命令执行的结果写 的状态寄存器中,同时处理器向IDE接口控制逻辑发触发信号,告诉IDE接口 控制逻辑数据已经写完成。
上述数据从IDE接口缓存区到FLASH缓存区的读写通过处理器或DMA控制器 完成。
本发明的优点在于可实现随机地址读写,数据读写的效率高,并能共享存 储数据,即一个存储器配备两套地址线、数据线和控制线,允许两个处理器同
时异步的访问存储单元,即IDE接口可以任意访问缓存单元,同时控制器内的处
理器也可以任意访问缓存单元,达到在闪存控制器内对缓存的灵活控制,提高
数据传输效率。


图1是本发明的电路原理框图。
具体实施例方式
参见图1, 一种双口 RAM实现高速闪存控制器缓存的结构,包括IDE接口控 制逻辑、IDE寄存器、IDE缓存区、处理器、Flash接口控制逻辑、FLASH缓存 区以及FPGA外围电路,其中IDE寄存器与IDE缓存区构成一个IDE接口缓存 区,所述IDE接口缓存区包括两个完全独立的控制口; IDE接口控制逻辑通过 其中一个控制口与IDE接口缓存区连接,处理器通过另一个控制口与IDE接口 缓存区连接;FLASH缓存区也包括两个完全独立的控制口; Flash接口控制逻辑 通过FLASH缓存区的其中一个控制口与FLASH缓存区连接,所述处理器通过另 一个控制口与FLASH缓存区连接,IDE接口缓存区与FLASH缓存区彼此独立,有 两组连接相同的FLASH缓存区和Flash控制接口逻辑,同时可以扩展多组连接 相同的FLASH缓存区和Flash控制接口逻辑。
其中,IDE寄存器中包括读数据寄存器、写数据寄存器、错误寄存器、读扇 区数寄存器、写扇区数寄存器、读逻辑扇区号寄存器、写逻辑扇区号寄存器读 柱面号寄存器、写柱面号寄存器、读柱面号寄存器、写柱面号寄存器、读磁头寄存器、写磁头寄存器、状态寄存器以及命令寄存器。
首先闪存控制器在工作过程中是被动设备,闪存控制器加电复位完成自检
后进入空闲状态,上微机IDE控制器和闪存控制器之间的通信是通过上微机IDE 控制器对闪存控制器的IDE寄存器读写来实现的,当上微机IDE控制器要进行 数据传输时,主机首先向闪存控制器的IDE寄存器发送命令参数,然后向命令 寄存器发送命令,闪存控制器收到命令后开始命令的执行。 上微机IDE控制器从闪存控制器读取数据过程
A) 根据要读的扇区位置,上微机IDE控制器发送命令参数,IDE接口控制 逻辑接收数据并存放在IDE接口缓存区,上微机IDE控制器等待闪存控制器的 设备READY信号位置1后进入下一步。
B) 上微机IDE控制器向闪存控制器发读命令,IDE接口控制逻辑将命令字 写入IDE接口缓存区,同时IDE接口控制逻辑设置IDE状态寄存器的位忙信号 后进入下一步。
C) IDE接口控制逻辑向处理器发中断信号,处理器从IDE接口缓存区读出命 令及其参数开始命令解析。
D) 处理器解析到是读命令,处理器把要读的扇区的物理地址写到FLASH缓 存区,同时处理器发触发信号给FLASH接口控制逻辑,通知FLASH接口控制逻
辑有命令到达。
E) FLASH接口控制逻辑收到触发信号,从FLASH缓存区读出命令及其参数, 解析命令,然后FLASH接口控制逻辑从指定的Nand Flash芯片中读出数据并存 放到FLASH缓存区,直到读完指定的数据后进入下一步。
F) FLASH接口控制逻辑把本次读的结果写入FLASH缓存区,同时向处理器发 中断信号,告诉处理器要读的数据己经放到FLASH缓存区。
G) 处理器接收到中断信号后,把数据从FLASH缓存区读到IDE接口缓存区, 数据转移完成后,处理器向IDE接口控制逻辑发触发信号,告诉IDE接口控制 逻辑数据准备好。
H) IDE接口控制逻辑收到触发信号后,清控制寄存器中的位忙信号,同时向
上微机IDE控制器发中断信号。I)上微机IDE控制器收到中断信号,开始读取设备寄存器,如果数据准备
好上微机IDE控制器读取数据,直到所有的数据读完结束本次命令。 上微机IDE控制器从闪存控制器写入数据过程,具体包括以下步骤
A) 根据要写的扇区位置,上微机IDE控制器发送命令参数,IDE接口控制 逻辑接收数据并存放在IDE接口缓存区,上微机IDE控制器等待闪存控制器的 设备READY信号位置1后进入下一步。
B) 上微机IDE控制器向闪存控制器发写命令,IDE接口控制逻辑将命令字 写入IDE接口缓存区,同时IDE接口控制逻辑设置IDE状态寄存器的数据请求 位后进入下一歩。
C) 上微机IDE控制器通过IDE接口控制逻辑向闪存控制器发送数据并保存 到IDE接口缓存区,当上微机IDE控制发送完数据后,IDE接口控制逻辑设置 状态寄存器中的位忙信号并清除数据请求信号,同时IDE接口控制逻辑发中断
信号到处理器。
D) 处理器接收到中断信号后,从IDE接口缓存区读出命令及其参数开始命 令解析,处理器解析到是写命令,处理器把要写的扇区的物理地址写到FLASH 缓存区,把数据从IDE接口缓存区读到FLASH缓存区,数据转移完成后,同时 处理器发触发信号给FLASH接口控制逻辑,通知FLASH接口控制逻辑有命令到达。
E) FLASH接口控制逻辑收到触发信号,从FLASH缓存区读出命令及其参数, 解析命令,然后FLASH接口控制逻辑把FLASH缓存区中的数据写到定的Nand Flash芯片中,直到写完指定的数据后进入下一步。
F) FLASH接口控制逻辑把本次写命令的结果状态写入FLASH缓存区,同时向 处理器发中断信号,告诉处理器要写的数据已经写到Nand Flash芯片中;
G) 处理器接收到中断信号后,从FLASH缓存区读出本次命令执行的结果写 的状态寄存器中,同时处理器向IDE接口控制逻辑发触发信号,告诉IDE接口 控制逻辑数据已经写完成。
无数据传输命令执行过程
A)上微机IDE控制器发送命令参数,闪存控制器的IDE接口控制逻辑接收数据并存放在IDE接口缓存区,上微机IDE控制器等待闪存控制器的设备READY 信号位置l后进入下一步。
B) 上微机IDE控制器向闪存控制器发送命令,闪存控制器的IDE接口控制 逻辑将命令字写入IDE接口缓存区。同时IDE接口控制逻辑设置IDE状态寄存 器的位忙信号后进入下一步
C) 闪存控制器的IDE接口控制逻辑向处理器发中断信号,处理器接收到中 断信号后,从IDE接口缓存区读出命令及其参数开始命令解析。
D) 处理器解析到是无数据传输命令命令,处理器开始执行命令,把命令执 行的结果放到状态寄存器中同时向IDE接口控制逻辑发触发信号。
E) 工DE接口控制逻辑收到触发信号后,清控制寄存器中的位忙信号,同时向 上微机IDE控制器发中断信号。
F) 上微机IDE控制器收到中断信号,开始读取设备寄存器,结束本次命令。
权利要求
1.一种双口RAM实现高速闪存控制器缓存的结构,包括IDE接口控制逻辑、IDE寄存器、IDE缓存区、处理器、Flash接口控制逻辑、FLASH缓存区以及FPGA外围电路,其特征在于其中IDE寄存器与IDE缓存区构成一个IDE接口缓存区,所述IDE接口缓存区包括两个完全独立的控制口;所述IDE接口控制逻辑通过其中一个控制口与IDE接口缓存区连接,所述处理器通过另一个控制口与IDE接口缓存区连接;所述FLASH缓存区也包括两个完全独立的控制口;所述Flash接口控制逻辑通过FLASH缓存区的其中一个控制口与FLASH缓存区连接,所述处理器通过另一个控制口与FLASH缓存区连接。
2. 根据权利要求1所述双口 RAM实现高速闪存控制器缓存的结构,其特征在于 所述IDE接口缓存区与FLASH缓存区彼此独立。
3. 根据权利要求1或2任一所述双口 RAM实现高速闪存控制器缓存的结构,其 特征在于包括至少两组连接相同的FLASH缓存区和Flash控制接口逻辑。
4. 根据权利要求3所述双口 R颜实现高速闪存控制器缓存的结构,其特征在于 所述IDE寄存器中包括读数据寄存器、写数据寄存器、错误寄存器、读扇区数 寄存器、写扇区数寄存器、读逻辑扇区号寄存器、写逻辑扇区号寄存器读柱面 号寄存器、写柱面号寄存器、读柱面号寄存器、写柱面号寄存器、读磁头寄存 器、写磁头寄存器、状态寄存器以及命令寄存器。
5. —种使用权利要求1缓存的结构实现高速闪存控制器缓存的方法,其特征在 于实现缓存包括上微机IDE控制器从闪存控制器读取数据过程和写入数据过 程;所述上微机IDE控制器从闪存控制器读取数据过程,具体包括以下步骤A) 根据要读的扇区位置,上微机IDE控制器发送命令参数,IDE接口控制 逻辑接收数据并存放在IDE接口缓存区,上微机IDE控制器等待闪存控制器的 设备READY信号位置1后进入下一步;B) 上微机IDE控制器向闪存控制器发读命令,IDE接口控制逻辑将命令字写入IDE接口缓存区,同时IDE接口控制逻辑设置IDE状态寄存器的位忙信号后进入下一歩;C) IDE接口控制逻辑向处理器发中断信号,处理器从IDE接口缓存区读出命 令及其参数开始命令解析;D) 处理器解析到是读命令,处理器把要读的扇区的物理地址写到FLASH缓 存区,同时处理器发触发信号给FLASH接口控制逻辑,通知FLASH接口控制逻 辑有命令到达;E) FLASH接口控制逻辑收到触发信号,从FLASH缓存区读出命令及其参数, 解析命令,然后FLASH接口控制逻辑从指定的Nand Flash芯片中读出数据并存 放到FLASH缓存区,直到读完指定的数据后进入下一步;F) FLASH接口控制逻辑把本次读的结果写入FLASH缓存区,同时向处理器发 中断信号,告诉处理器要读的数据已经放到FLASH缓存区;G) 处理器接收到中断信号后,把数据从FLASH缓存区读到IDE接口缓存区, 数据转移完成后,处理器向IDE接口控制逻辑发触发信号,告诉IDE接口控制 逻辑数据准备好;H) IDE接口控制逻辑收到触发信号后,清控制寄存器中的位忙信号,同时向 上微机IDE控制器发中断信号;I) 上微机IDE控制器收到中断信号,开始读取设备寄存器,如果数据准备 好上微机IDE控制器读取数据,直到所有的数据读完结束本次命令;所述上微机IDE控制器从闪存控制器写入数据过程,具体包括以下步骤A) 根据要写的扇区位置,上微机IDE控制器发送命令参数,IDE接口控制 逻辑接收数据并存放在IDE接口缓存区,上微机IDE控制器等待闪存控制器的 设备READY信号位置1后进入下一步;B) 上微机IDE控制器向闪存控制器发写命令,IDE接口控制逻辑将命令字 写入IDE接口缓存区,同时IDE接口控制逻辑设置IDE状态寄存器的数据请求 ^f立后进入下一步;C) 上微机IDE控制器通过IDE接口控制逻辑向闪存控制器发送数据并保存 到IDE接口缓存区,当上微机IDE控制发送完数据后,IDE接口控制逻辑设置状态寄存器中的位忙信号并清除数据请求信号,同时IDE接口控制逻辑发中断 信号到处理器;D) 处理器接收到中断信号后,从IDE接口缓存区读出命令及其参数开始命 令解析,处理器解析到是写命令,处理器把要写的扇区的物理地址写到FLASH 缓存区,把数据从IDE接口缓存区读到FLASH缓存区,数据转移完成后,同时 处理器发触发信号给FLASH接口控制逻辑,通知FLASH接口控制逻辑有命令到 达;E) FLASH接口控制逻辑收到触发信号,从FLASH缓存区读出命令及其参数, 解析命令,然后FLASH接口控制逻辑把FLASH缓存区中的数据写到定的Nand Flash芯片中,直到写完指定的数据后进入下一步;F) FLASH接口控制逻辑把本次写命令的结果状态写入FLASH缓存区,同时向 处理器发中断信号,告诉处理器要写的数据已经写到Nand Flash芯片中;G) 处理器接收到中断信号后,从FLASH缓存区读出本次命令执行的结果写 的状态寄存器中,同时处理器向IDE接口控制逻辑发触发信号,告诉IDE接口 控制逻辑数据已经写完成。
6.根据权利要求5所述实现高速闪存控制器缓存的方法,其特征在于所述数据从IDE接口缓存区到FLASH缓存区的读写通过处理器或DMA控制器完成。
全文摘要
一种双口RAM实现高速闪存控制器缓存的结构及实现该缓存的方法,该结构包括IDE接口控制逻辑、IDE寄存器、IDE缓存区、处理器、Flash接口控制逻辑、FLASH缓存区以及FPGA外围电路,其中IDE寄存器与IDE缓存区构成一个IDE接口缓存区,IDE接口缓存区和FLASH缓存区均包括两个完全独立的控制口;该缓存的方法包括随机的数据读出和写入过程。本发明可实现随机地址读写,数据读写的效率高。
文档编号G06F13/16GK101620581SQ200810150250
公开日2010年1月6日 申请日期2008年7月3日 优先权日2008年7月3日
发明者升 刘, 李喜军, 王永强 申请人:西安奇维测控科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1