固态盘控制器装置的制作方法

文档序号:6554412阅读:129来源:国知局
专利名称:固态盘控制器装置的制作方法
技术领域
本发明涉及电子存储器设备。具体地说,本发明涉及一种固态盘控制器装置。
背景技术
如在本技术领域内所公知的那样,计算机系统通常使用几种类型的存储器系统。例如,计算机系统通常使用所谓的主存储器,其由能够以同等和非常快的存取时间进行随机写入和读取的多个半导体器件组成,因此通常被称作随机存取存储器。然而,由于半导体存储器相对昂贵,因此经常使用其它较高密度和较低成本的存储器。例如,其它存储器系统包括磁盘存储系统。在磁盘存储系统的情况下,一般而言,存取时间为数十毫秒量级。另一方面,在主存储器的情况下,存取时间为数百纳秒量级。盘存储装置用来存储可以根据需要而顺序地读入到主存储器中的大量数据。另一种盘式存储装置是固态盘存储装置(SSD,也被称作固态驱动器)。SSD是使用存储器芯片如SDRAM来存储数据而非象在传统的硬盘驱动器中的旋转底板(platter)的数据存储设备那样。
术语“SSD”用于两种不同的产品。第一种SSD基于快速的易失性存储器例如SDRAM,其被分类为极其快的数据存取,并且主要用于加速受限于盘驱动器的延迟的应用程序。由于该SSD使用易失性存储器,因此它典型地包括内部电池和后备盘系统,以确保数据持久性。如果无论什么原因而掉电,则电池保持该单元被供电的时间长得足以将全部数据从RAM复制到后备盘。当恢复供电时,将数据从后备盘复制回到RAM,并且SSD恢复正常操作。第一种SSD特别用于已经具有最大数量的RAM的计算机。第二种SSD使用闪存来存储数据。通常具有与传统的存储装置相同的尺寸的这些产品典型地用作对硬盘驱动器的低功率、坚固的(rugged)替代物。为了避免与第一种类型相混淆,这些盘被泛称作快闪盘。本发明涉及第二种SSD。

发明内容
本发明的目的是提供一种能够传输数据而无CPU总线速度的限制的固态盘控制器装置。
根据本发明的一方面,提供了一种固态盘控制器装置,其包括第一端口;第二端口,具有多个信道;中央处理单元,连接到CPU总线;以及缓冲存储器,被配置成存储要从第二端口传输到第一端口以及要从第一端口传输到第二端口的数据。缓冲控制器/仲裁器块可以连接到CPU总线,并且被配置成基于中央处理单元的控制而控制缓冲存储器的读和写操作。第一数据传输块可以连接在第一端口和缓冲控制器/仲裁器块之间,并且被配置成与CPU总线相并行地传输要向/从缓冲存储器中存储/读取的数据。第二数据传输块可以连接在第二端口和缓冲控制器/仲裁器块之间,并且被配置成与CPU总线相并行地传输要向/从缓冲存储器中存储/读取的数据。
优选地,第一和第二数据传输块中的任一个或两者用来在缓冲存储器和相应的第一和第二端口之间传输数据时绕开CPU总线。
这里所使用的术语“块”是指实现所述操作的电子电路。这样的电路可以完全通过硬连线电路来实现,或者通过硬件、软件和/或固件的组合来实现。
在本实施例中,第一数据传输块可以包括主机接口控制块,连接到CPU总线,并且被配置成根据中央处理单元的控制而通过第一端口与外部主机接口;以及第一FIFO,被配置成在主机接口控制块和缓冲控制器/仲裁器块之间提供数据传输路径。
在本实施例中,第一端口可以包括第一信道,连接到串行ATA接口类型的外部主机;第二信道,连接到并行ATA接口类型的外部主机;转换块,被配置成将要通过第一信道输入的数据转换成串行ATA格式,并且将要通过第一信道输出的数据转换成并行ATA格式;以及多路复用器,被配置成将来自第一信道或来自转换块的数据传输到主机接口控制块,该多路复用器将来自主机接口块的数据传输到第二信道和转换块中的任一个。
在本实施例中,第一端口可以被配置成将来自第一信道的数据直接传输到主机接口控制块,以及通过第一信道将来自主机接口控制块的数据直接传输到串行ATA接口类型的外部主机。
在本实施例中,第二数据传输块可以包括多个第二FIFO,分别对应于第二端口的信道;以及存储器接口控制块,连接到CPU总线,并且被配置成通过第二端口与半导体存储器接口,其中该多个第二FIFO被配置成在存储器接口控制块和缓冲控制器/仲裁器块之间提供数据传输路径。
在本实施例中,该存储器设备还可以包括多个ECC块,其分别连接到第二FIFO,该多个ECC块被配置成检测通过第二FIFO传输的数据的错误,并且生成向半导体存储器传输的数据的纠错码。
在本实施例中,当从通过对应的FIFO传输的数据中检测到错误时,ECC块可以被配置成纠正出错数据而无需中央处理单元的干涉。
在本实施例中,第二端口的每一个信道可以与多个非易失性存储器相连接。
在本实施例中,连接到第二端口的每个信道的非易失性存储器可以包括具有相同类型的非易失性存储器。
在本实施例中,相同类型或不同类型的非易失性存储器可以连接到第二端口的每个信道。
在本实施例中,第二数据传输块可以被配置成在加电时检测连接到第二端口的信道的非易失性存储器的类型,并且根据检测结果来控制每个信道的非易失性存储器的读和写操作。
在本实施例中,第二数据传输块可以被配置成当向第二端口的信道请求读和写操作时,基于硬件和软件交织(interleave)协议中的任一个,控制连接到第二端口的信道的半导体存储器的读和写操作。
在本实施例中,缓冲控制器/仲裁器块可以被配置成当第一和第二FIFO请求数据处理操作时以循环的方式处理数据。
在本实施例中,存储器接口控制块可以包括控制逻辑电路,被配置成生成要通过第二端口传输到半导体存储器的第一时钟信号,该半导体存储器与第一时钟信号相同步地输出数据;延迟电路,被配置成延迟第一时钟信号,并且生成第二时钟信号;以及数据取出寄存器,被配置成与第二时钟信号相同步地从半导体存储器取出数据。
在本实施例中,延迟电路的延迟时间可以由来自外部源的延迟信息确定。
在本实施例中,存储器接口控制块还可以包括寄存器,其用于存储用来确定延迟电路的延迟时间的延迟信息。
根据本发明的另一方面,提供了一种固态盘控制器装置,其包括第一端口;第二端口,具有多个信道;中央处理单元,连接到CPU总线;以及缓冲存储器,被配置成存储要从第二端口传输到第一端口或者要从第一端口传输到第二端口的数据。主机接口控制块可以连接到第一端口和CPU总线,并且被配置成根据中央处理单元的控制而与外部主机接口。缓冲控制器/仲裁器块可以连接到CPU总线,并且被配置成根据中央处理单元的控制而控制缓冲存储器。第一FIFO可以被配置成在主机接口控制块和缓冲控制器/仲裁器块之间提供数据传输路径。存储器接口控制块可以连接到第二端口和CPU总线,并且被配置成根据中央处理单元的控制而与非易失性存储器接口。多个第二FIFO可以被配置成在存储器接口控制块和缓冲控制器/仲裁器块之间提供数据传输路径。
在本实施例中,该存储器设备还可以包括多个ECC块,其分别连接到第二FIFO,该多个ECC块被配置成检测通过对应的第二FIFO传输的数据的错误,并且生成向非易失性存储器传输的数据的纠错码。
在本实施例中,当从通过对应的第二FIFO传输的数据中检测到错误时,ECC块可以被配置成纠正出错数据而无需中央处理单元的干涉。
在本实施例中,连接到第二端口的每个信道的非易失性存储器可以包括具有彼此相同的类型的非易失性存储器。
在本实施例中,相同类型或不同类型的非易失性存储器可以连接到第二端口的每个信道。
在本实施例中,存储器接口控制块可以被配置成在加电时检测连接到第二端口的信道的非易失性存储器的类型,并且根据检测结果来控制每个信道的非易失性存储器的读和写操作。
在本实施例中,存储器接口控制块可以被配置成当向第二端口的信道请求读和写操作时,基于硬件和软件交织协议中的任一个,控制连接到第二端口的信道的非易失性存储器的读和写操作。
在本实施例中,缓冲控制器/仲裁器块可以被配置成当第一和第二FIFO请求数据处理操作时以循环的方式处理数据。
在本实施例中,存储器接口控制块可以包括控制逻辑电路,被配置成生成要通过第二端口传输到半导体存储器的第一时钟信号,该半导体存储器与第一时钟信号相同步地输出数据;延迟电路,被配置成延迟第一时钟信号,并且生成第二时钟信号;以及数据取出寄存器,被配置成与第二时钟信号相同步地从半导体存储器取出数据。
在本实施例中,延迟电路的延迟时间可以由来自外部源的延迟信息确定。
在本实施例中,存储器接口控制块还可以包括寄存器,其用于存储用来确定延迟电路的延迟时间的延迟信息。


根据下面结合附图考虑的详细描述,本发明的更完全理解及其很多附带的优点将会很容易地变得清楚,其中相同的附图标记表示相同或类似的组件,其中图1是示出根据本发明的固态盘控制器装置的实施例的方框图;图2是示出用于连接图1中的缓冲控制器/仲裁器块和FIFO的总线架构的方框图;图3A和3B是用于描述缓冲控制器/仲裁器块和FIFO的操作的时序图;图4是示出图1中的ECC块的总线架构的方框图;图5是用于描述图1中的ECC块的错误检测和纠正操作的时序图;图6是示出图1中的快闪接口控制块的n个信道之一的方框图;图7到图9是用于描述根据4向交织协议的写过程的时序图;图10是示出图1中的快闪接口控制块的方框图;图11是示出由图10中的快闪接口控制块的延迟电路延迟的取出时钟信号的时序图;图12是示出连接到快闪接口控制块的信道的存储器类型的方框图;以及图13是示出由根据本发明的固态盘控制器装置支持的第二信道的另一个结构的方框图。
具体实施例方式
将参照附图更全面地描述本发明的优选实施例。
图1是示出根据本发明优选实施例的固态盘控制器装置的方框图。固态盘控制器装置1000包括第一端口(端口A)和第二端口(端口B)。固态盘控制器装置1000通过第一端口PORT A与外部主机(未示出)交换数据。第一端口包括两个信道并行AT附属(attachment)(PATA)总线1001和串行AT附属(SATA)总线1002。第二端口PORT B包括多个信道,其中每一个电气连接到多个非易失性存储器。这里,相同类型的存储器连接到每个信道。连接到一个信道的非易失性存储器包括单电平(single-level)闪存、多电平(multi-level)闪存、OneNAND闪存(它是集成了闪存核心和存储器控制逻辑电路的单个芯片)等。例如,单电平闪存连接到一个信道,多电平闪存连接到另一个信道,并且OneNAND闪存连接到其它信道。SATA接口(在图1中,以“SATA接口”标记)1100被称作设备软件保护器(device dongle),并且将串行/并行数据转换成并行/串行数据。例如,SATA接口1100接收通过SATA总线1002传输的串行数据,并且将所接收的串行数据转换成并行数据。SATA接口1100将来自多路复用器1200的并行数据转换成串行数据。多路复用器1200将通过PATA总线1001提供的并行数据传输到主机接口控制块1300。多路复用器1200将来自主机接口控制块1300的数据传输到PATA总线1001或SATA接口1100。预先确定是否使用第一端口的PATA总线1001和SATA总线1002中的任一个。
继续参照图1,主机接口控制块1300连接到PATA总线1001(或者,被称作“内部IDE总线”)、SATA总线1002、以及CPU总线1003。主机接口控制块1300根据中央处理单元(CPU)1400的控制而执行接口操作。通过缓冲控制器/仲裁器块1600和FIFO(L_FIFO)1500将要通过主机接口控制块1300输入/输出的数据存储在缓冲存储器1700中,而不经过CPU总线1003。例如,在CPU 1400的控制下通过主机接口控制块1300、L_FIFO 1500、以及缓冲控制器/仲裁器块1600将从外部输入的数据存储在缓冲存储器1700中。同样地,通过缓冲控制器/仲裁器块1600、L_FIFO 1500和主机接口控制块1300将存储在缓冲存储器1700中的数据输出到外部。
可以在不使用CPU总线1003的情况下执行固态盘控制器装置1000的数据传输操作,从而数据传输速度不受CPU总线速度的影响。
L_FIFO 1500连接在主机接口控制块1300和缓冲控制器/仲裁器块1600之间。在内部总线1004和1005的带宽彼此不同的情况下,L_FIFO 1500用来在传输数据时临时存储未被处理的数据。L_FIFO 1500的大小被确定成在数据传输操作期间L_FIFO 1500不被填满的程度。主机接口控制块1300包括寄存器1301,其中存储了来自外部的操作命令和地址。主机接口控制块1300响应于存储在寄存器1301中的信息而通过CPU总线1003向CPU 1400传达写或读操作。CPU 1400基于输入信息而控制主机接口控制块1300和缓冲控制器/仲裁器块1600。下面将对此进行更全面的描述。
快闪接口控制块1800通过第二端口与外部非易失性存储器交换数据。快闪接口控制块1800被配置成支持NAND闪存、One_NAND闪存和多电平闪存。快闪接口控制块1800包括预定数目的信道。信道可以与多个非易失性存储器中的任一个相连接。信道可以与相同类型的存储器相连接,或者可以与不同类型的存储器相连接。另外,在各种类型的非易失性存储器连接到第二端口的情况下,固态盘控制器装置1000支持用于在引导时诊断连接到第二端口的非易失性存储器的类型的功能。该功能通过公知的对设备ID的读操作来容易地实现。当向不同的信道执行读操作和编程操作时,本固态盘控制器装置1000的快闪接口控制块1800选择性地执行软件和硬件交织操作。
通过FIFO Ri_FIFO(i=0-n)和缓冲控制器/仲裁器块1600将通过快闪接口控制块1800传输的数据存储在缓冲存储器1700中。通过FIFO Ri_FIFO(i=0-n)和缓冲控制器/仲裁器块1600将通过快闪接口控制块1800传输的数据存储在缓冲存储器1700中,而不经过CPU总线1003。例如,在CPU 1400的控制下,通过快闪接口控制块1800、Ri_FIFO和缓冲控制器/仲裁器块1600将通过第二端口输入的数据存储在缓冲存储器1700中。同样地,在CPU 1400的控制下,通过缓冲控制器/仲裁器块1600、Ri_FIFO、以及快闪接口控制块1800,将存储在缓冲存储器1700中的数据传输到第二端口。可以在不使用CPU总线1003的情况下执行固态盘控制器装置1000的数据传输操作,从而其数据传输速度不受CPU总线速度的影响。FIFO R0_FIFO-Rn_FIFO连接在快闪接口控制块1800和缓冲控制器/仲裁器块1600之间。在内部总线1006<n:0>和1007<n:0>的带宽彼此不同的情况下,FIFO R0_FIFO-Rn_FIFO用来在传输数据时临时存储未被处理的数据。每个FIFO R0_FIFO-Rn_FIFO的大小被确定成在数据传输操作期间FIFO Ri FIFO中的每一个不被填满的程度。
缓冲控制器/仲裁器块1600被配置成控制缓冲存储器1700的读和写操作。例如,缓冲控制器/仲裁器块1600将通过L_FIFO或Ri_FIFO输入的数据存储在缓冲存储器1700中。缓冲控制器/仲裁器块1600从缓冲存储器1700读出要被写入到非易失性存储器或者要被输出到外部的数据。缓冲控制器/仲裁器块1600被配置成当数据处理请求同时发生时以循环的方式处理数据。在这种情况下,优选的是,限制立即要被处理的数据量,以便不花太长时间来处理任何请求。缓冲控制器/仲裁器块1600具有足够的数据处理能力来处理FIFO R0_FIFO-Rn_FIFO的同时请求。也就是,数据处理容量等于或大于总带宽(L_FIFO+R0_FIFO+…+Rn_FIFO)。
错误检查和纠正(ECC)块1900_0-1900_n分别连接到FIFO R0_FIFO-Rn_FIFO,其中FIFO R0_FIFO-Rn_FIFO并联在缓冲控制器/仲裁器块1600和快闪接口控制块1800之间。当通过任何FIFO(例如,R0_FIFO)将数据从快闪接口控制块1800传输到缓冲存储器1700时,对应于R0_FIFO的ECC块1900_0对通过R0_FIFO传输的数据执行错误检测操作。如果从所传输的数据中检测到错误,则ECC块1900_0被配置成向缓冲控制器/仲裁器块1600请求纠错,并且纠正缓冲存储器1700中的出错数据。当通过对应的FIFO向快闪接口控制块1800传输主数据时,ECC块1900_0-1900_n中的每一个生成ECC数据。在快闪接口控制块1800的控制下,将这样生成的ECC数据与主数据一起存储在连接到第二端口的非易失性存储器中。
缓冲存储器1700用来存储要被传输到外部(例如,外部主机或非易失性存储器)的数据。另外,缓冲存储器1700用来存储由CPU 1400操作的程序。缓冲存储器1700优选地由SRAM组成。缓冲存储器1700可以由用于存储要被传输到外部的数据的SRAM和用于存储由CPU 1400操作的程序和数据的SRAM组成。但是,对于本领域的技术人员而言是显而易见的,缓冲存储器的类型和分配不局限于本公开内容的特定例子。
CPU 1400通过使用控制块1300和1800中的控制寄存器1301和1801的值而生成命令。CPU 1400以用于读和写操作的控制信息设置控制寄存器1301和1801。例如,当从外部接收到读/写命令时,将它存储在主机接口控制块1300的寄存器1301中。主机接口控制块1300基于存储在寄存器1301中的命令而向CPU 1400通知接收到读/写命令。CPU 1400根据读/写命令来控制块1300和1600。另外,CPU 1400将读/写命令存储在快闪接口控制块1800的寄存器1801中。快闪接口控制块1800基于存储在寄存器1801中的命令而控制通过第二端口对非易失性存储器的读/写操作。
根据本发明的本实施例,当需要针对连接到第二端口的非易失性存储器的读/写操作时,不通过固态盘控制器装置1000中的CPU总线1003而通过FIFO路径执行数据传输操作。也就是,可以在不使用CPU总线1003的情况下执行从第一端口到第二端口(或者从第二端口到第一端口)的数据传输,从而本固态盘控制器装置1000的数据传输速度不受CPU总线1003的速度的影响。
图2是示出用于连接图1中的缓冲控制器/仲裁器块和FIFO的总线架构的方框图,并且图3A和3B是用于描述缓冲控制器/仲裁器块和FIFO的操作的时序图。
参照图2,缓冲控制器/仲裁器块1600被配置成当从FIFO L_FIFO和R0_FIFO-Rn_FIFO请求数据处理操作时确认数据处理请求。L_FIFO和缓冲控制器/仲裁器块1600之间的总线被配置成传输请求信号REQ0、准予信号GRT0、读/写区分信号RW0、地址ADDRESS0、读数据RD0、写数据WD0、以及数据有效区间信号D_VALID0。同样地,FIFO R0_FIFO-Rn_FIFO和缓冲控制器/仲裁器块1600之间的总线1006_0-1006_n中的每一个被配置成传输请求信号REQ1、准予信号GRT1、读/写区分信号RW1、地址ADDRESS1、读数据RD1、写数据WD1、以及数据有效区间信号D_VALID1。
在将数据从缓冲存储器1700传输到L_FIFO的情况下,如图3A所示,L_FIFO激活用于读操作的请求信号REQ0。同时,将要被读取的数据的地址ADDRESS0从L_FIFO传输到缓冲控制器/仲裁器块1600。当请求信号REQ0被激活时,缓冲控制器/仲裁器块1600在先前处理结束时激活准予信号GRT0。当数据处理请求被准予时,L_FIFO顺序地向缓冲控制器/仲裁器块1600发送地址。缓冲控制器/仲裁器块1600在有效数据区间信号D_VALID0的激活期间,根据所接收的地址从缓冲存储器1700读取数据,并且将所读取的数据输出到L_FIFO。此时,当接收到预定数量的数据(例如,八个N比特数据)时,L_FIFO解除激活(inactivate)请求信号REQ0。该解除激活使得缓冲控制器/仲裁器块1600能够处理另一个FIFO的请求。
在将数据从L_FIFO传输到缓冲存储器1700的情况下,如图3B所示,L_FIFO激活用于写操作的请求信号REQ0。当请求信号REQ0被激活时,缓冲控制器/仲裁器块1600在先前处理结束时激活准予信号GRT0。当数据处理请求被准予时,L_FIFO顺序地将地址与要被写入的数据一起发送到缓冲控制器/仲裁器块1600。缓冲控制器/仲裁器块1600根据所接收的地址将所接收的数据写入在缓冲存储器1700中。此时,当输出了预定数量的数据(例如,八个N比特数据)时,L_FIFO解除激活请求信号REQ0。该解除激活使得缓冲控制器/仲裁器块1600能够处理另一个FIFO的请求。
以与图3A所示相同的方式执行经由总线1006_i从缓冲存储器1700到Ri_FIFO的数据传输,并且以与图3B所示相同的方式执行经由总线1006_i从Ri_FIFO到缓冲存储器1700的数据传输。因此,省略了与FIFO R0_FIFO-Rn_FIFO相关的读和写操作的描述。
图4是示出图1中的ECC块的总线架构的方框图,并且图5是用于描述ECC块的错误检测和纠正操作的时序图。
参照图4,用于连接ECC块1900_0和R0_FIFO的示例性总线被配置成传输ECC请求信号ECC_REQ、ECC读/写区分信号ECC_RW、ECC地址ECC_ADDRESS、ECC校正(remedy)数据ECC_RMWD、ECC准予信号ECC_GRT、以及ECC读数据ECC_RD。
假定通过R0_FIFO向缓冲存储器1700传输数据。如果从所传输的数据中检测到错误,则ECC块1900_0激活ECC请求信号ECC_REQ,其与出错数据的ECC地址ADD1一起通过R0_FIFO被传输到缓冲控制器/仲裁器块1600。当接收到请求信号ECC_REQ与地址ADD1时,缓冲控制器/仲裁器块1600激活准予信号ECC_GRT。此时,ECC读/写区分信号ECC_RW保持高,以便指示读操作。当ECC读/写区分信号ECC_RW处于高电平时,在缓冲控制器/仲裁器块1600的控制下从缓冲存储器1700读取出错数据。通过R0_FIFO将这样读取的出错数据ECC_RD传输到ECC块1900_0。由ECC块1900_0纠正出错数据ECC_RD,并且通过R0_FIFO将经过纠错的数据ECC_RMWD传输到缓冲控制器/仲裁器块1600。此时,ECC读/写区分信号ECC_RW进入指示写操作的低电平。缓冲控制器/仲裁器块1600响应于ECC读/写区分信号ECC_RW而将经过纠错的数据ECC_RMWD存储在缓冲存储器1700中。此后,缓冲控制器/仲裁器块1600解除激活准予信号ECC_GRT。
图6是示出图1中的快闪接口控制块的多个信道之一的方框图。
参照图6,一个信道与多个非易失性存储器相连接。在本例中,非易失性存储器由NAND闪存组成。如在本技术领域内所公知的那样,NAND闪存具有命令/地址/数据复用I/O结构。这意味着通过输入/输出引脚提供命令、数据和地址。假定一个信道与四个非易失性存储器相连接,则它包括公共连接到存储器M0、M1、M2和M3的输入/输出线1802、分别连接到对应的存储器的四个芯片使能信号线1803a-1803d、以及分别连接到对应的存储器的四个就绪/忙碌信号线1804a-1804d。另外,虽然未在图中示出,诸如/WE、/RE、CLE、ALE等的控制信号被公共提供给存储器M0-M3。
假定四个闪存M0-M3连接到一个信道。在该假设下,下面将更全面地描述硬件和软件交织协议的写操作。为了执行写操作,CPU 1400通过CPU总线1003(参见图1)将写命令存储在快闪接口控制块1800的寄存器1801中。快闪接口控制块1800响应于存储在寄存器1801中的写命令而执行对闪存的写操作。在上述信道结构的情况下,如果要被写入的扇区的数目超过2,则优选地根据硬件和软件交织协议来执行对闪存的写操作。首先,将参照图7描述硬件交织协议的写操作。图7示出了用于描述根据4向交织的写过程的时序图。
参照图7,一旦针对任何信道的写命令由CPU 1400写入在快闪接口控制块1800的寄存器1801中,则快闪接口控制块1800持续地将要被编程的数据传输到闪存M0-M3,而无需CPU 1400的干预。例如,遵循命令和地址,通过信道(即,输入/输出线)1802持续地将要被编程的数据传输到闪存M0,并且在预定的时间tPROG(M0)的期间将所传输的数据编程在闪存M0的存储器单元阵列中。在执行对闪存M0的写操作时,如图7所示,快闪接口控制块1800通过信道(也就是,输入/输出线)1802将要被编程的数据传输到闪存M1。同样地,以与上述相同的方式传输在闪存M2和M3中要被编程的数据。从而,该信道在传输命令、地址和数据的期间由闪存M0-M3中的每一个占用。另外,该信道在用于判断写操作通过或失败的状态读取周期期间由每个闪存占用。一旦所有数据被编程,则快闪接口控制块1800向CPU 1400通知写操作结束。在公共连接到该信道的闪存中要被编程的数据是从缓冲存储器1700读出的数据。
下面将参照图8描述软件交织协议的写操作。图8是用于描述在闪存的编程时间保持不变的假设之下根据4向交织的写操作的时序图。
参照图8,一旦针对任何信道的写命令由CPU 1400写入在快闪接口控制块1800的寄存器1801中,则快闪接口控制块1800根据CPU 1400的控制而控制闪存M0-M3的写操作。例如,遵循命令和地址,通过信道(即,输入/输出线)1802顺序地将要被编程的数据WD0传输到闪存M0。一旦数据WD0被传输到闪存M0,则快闪接口控制块1800向CPU 1400通知向闪存M0的数据传输结束。CPU 1400将写命令与传输编程数据的信道的信息一起存储在寄存器1801中。这些步骤(在图8中,以‘a’标记的周期)在对向闪存M0传输的数据WD0进行编程的周期tPROG内执行。如果在寄存器1801中再次写入写命令,则快闪接口控制块1800遵循命令和地址通过信道(即,输入/输出线)将编程数据WD1顺序地传输到闪存M1。同样地,以与上述相同的方式执行向闪存M2和M3的数据传输,因此省略了其描述。
相同于硬件交织协议,该信道在传输命令、地址和数据的周期期间顺序地由每个闪存占用。另外,该信道在用于判断写操作通过或失败的状态读取周期期间由每个闪存占用。
不同于闪存的编程时间保持不变的上述假设,闪存的编程时间tPROG不保持不变。也就是,由于闪存的编程时间可以不同,因此如图9所示,在软件交织协议的写操作期间发生时间损失。
图10是示出图1中的快闪接口控制块的方框图。
众所周知,使用诸如REB的控制信号将数据从闪存传输到快闪接口控制块1800。在这种情况下,从闪存到快闪接口控制块1800的数据传输受到输入/输出线的线路负载或传输时间(flight time)的影响。也就是,如图10所示,用于将点A处的数据传输到点A’的时间根据系统配置而变化。为了克服该变化,优选的是调整取出时钟信号F_CLK的取出时间,其中取出时钟信号F_CLK用于确定内部数据取出寄存器1810的数据取出定时。延迟电路1820响应于施加到闪存的REB信号而生成取出时钟信号F_CLK,并且将取出时钟信号F_CLK施加到数据取出寄存器1810。具体地说,延迟电路1820的延迟时间由在快闪接口控制块1800的寄存器1830中设置的值,或者由通过外部板(pad)1840施加的值调整。如图11所示,位于点A并且与REB信号相同步地输出的数据在延迟时间Δt之后到达点A’。从而,通过将REB信号延迟Δt并且生成取出时钟信号F_CLK,有可能稳定地取出从闪存传输的数据。
图12是示出能够连接到快闪接口控制块的信道的存储器类型的方框图。
参照图12,一个信道CH.1与多个在每个单元中存储1比特数据的NAND闪存公共连接,另一个信道CH.2与多个在每个单元中存储N比特数据的NAND闪存公共连接,并且其它信道CH.n与多个OneNAND闪存公共连接。但是,可以很清楚的是,不同类型的非易失性存储器可以连接到每个信道。
图13是示出由固态盘控制器装置1000支持的第二信道的另一个结构的方框图。
参照图13,具有x16的输入/输出比特构成的闪存通过并联两个闪存(芯片1和芯片2)来配置,其中每个闪存具有x8的输入/输出比特构成。根据该信道结构,有可能加倍闪存的数目和存储能力。两个芯片中的一个使用输入/输出线IO[7:0],并且另一个使用输入/输出线IO[15:8]。在这种情况下,所有控制信号由这些芯片共享。
如上所述,由于不通过CPU总线而通过FIFO路径执行固态盘控制器装置1000的数据传输操作,因此固态盘控制器装置的数据传输速度不受CPU总线速度的影响。
本发明是使用示例性优选实施例来描述的。然而,应当理解,本发明的范围不局限于所公开的实施例。相反地,它旨在涵盖各种修改和类似的安排。因此,权利要求的范围应当被给予最宽的解释,以便囊括所有这样的修改和类似的安排。
本申请要求在2005年1月11日提交的韩国专利申请第2005-2611号的优先权,在此将其全文引作参考。
权利要求
1.一种固态盘控制器装置,包括第一端口;第二端口,具有多个信道;中央处理单元,连接到CPU总线;缓冲存储器,被配置成存储从第一端口和第二端口之一或向第一端口和第二端口之一传输的数据;缓冲控制器/仲裁器块,连接到CPU总线,并且被配置成基于中央处理单元的控制而控制缓冲存储器的读和写操作;第一数据传输块,连接在第一端口和缓冲控制器/仲裁器块之间,并且被配置成与CPU总线相并行地传输向缓冲存储器存储/从缓冲存储器读取的数据;以及第二数据传输块,连接在第二端口和缓冲控制器/仲裁器块之间,并且被配置成与CPU总线相并行地传输向缓冲存储器存储/从缓冲存储器读取的数据。
2.如权利要求1所述的固态盘控制器装置,其中第一数据传输块包括主机接口控制块,连接到CPU总线,并且被配置成根据中央处理单元的控制而通过第一端口与外部主机接口;以及第一FIFO,被配置成绕开CPU总线在主机接口控制块和缓冲控制器/仲裁器块之间提供数据传输路径。
3.如权利要求2所述的固态盘控制器装置,其中第一端口包括第一信道,连接到串行ATA接口类型的外部主机;第二信道,连接到并行ATA接口类型的外部主机;转换块,被配置成将要通过第一信道输入的数据转换成串行ATA格式,并且将要通过第一信道输出的数据转换成并行ATA格式;以及多路复用器,被配置成将来自第一信道或来自转换块的数据传输到主机接口控制块,该多路复用器将来自主机接口块的数据传输到第二信道和转换块中的任一个。
4.如权利要求3所述的固态盘控制器装置,其中第一端口被配置成将来自第一信道的数据直接传输到主机接口控制块,以及通过第一信道将来自主机接口控制块的数据直接传输到串行ATA接口类型的外部主机。
5.如权利要求1所述的固态盘控制器装置,其中第二数据传输块包括多个第二FIFO,分别对应于第二端口的信道;以及存储器接口控制块,连接到CPU总线,并且被配置成通过第二端口与半导体存储器接口,其中该多个第二FIFO被配置成绕开CPU总线在存储器接口控制块和缓冲控制器/仲裁器块之间提供数据传输路径。
6.如权利要求5所述的固态盘控制器装置,还包括多个ECC块,其分别连接到第二FIFO,该多个ECC块被配置成检测通过第二FIFO传输的数据的错误,并且生成向半导体存储器传输的数据的纠错码。
7.如权利要求6所述的固态盘控制器装置,其中当从通过对应的FIFO传输的数据中检测到错误时,ECC块被配置成纠正出错数据而无需中央处理单元的干涉。
8.如权利要求1所述的固态盘控制器装置,其中第二端口的每一个信道与多个非易失性存储器相连接。
9.如权利要求8所述的固态盘控制器装置,其中连接到第二端口的每个信道的非易失性存储器包括具有相同类型的非易失性存储器。
10.如权利要求8所述的固态盘控制器装置,其中相同类型的非易失性存储器连接到第二端口的每个信道。
11.如权利要求8所述的固态盘控制器装置,其中不同类型的非易失性存储器连接到第二端口的每个信道。
12.如权利要求8所述的固态盘控制器装置,其中第二数据传输块被配置成在加电时检测连接到第二端口的信道的非易失性存储器的类型,并且根据检测结果来控制每个信道的非易失性存储器的读和写操作。
13.如权利要求5所述的固态盘控制器装置,其中第二数据传输块被配置成当向第二端口的信道请求读和写操作时,基于硬件和软件交织协议中的任一个,控制连接到第二端口的信道的半导体存储器的读和写操作。
14.如权利要求5所述的固态盘控制器装置,其中缓冲控制器/仲裁器块被配置成当第一和第二FIFO请求数据处理操作时以循环的方式处理数据。
15.如权利要求5所述的固态盘控制器装置,其中存储器接口控制块包括控制逻辑电路,被配置成生成通过第二端口传输到半导体存储器的第一时钟信号,该半导体存储器与第一时钟信号相同步地输出数据;延迟电路,被配置成延迟第一时钟信号,并且生成第二时钟信号;以及数据取出寄存器,被配置成与第二时钟信号相同步地从半导体存储器取出数据。
16.如权利要求15所述的固态盘控制器装置,其中延迟电路的延迟时间由来自外部源的延迟信息确定。
17.如权利要求15所述的固态盘控制器装置,其中存储器接口控制块还包括寄存器,其用于存储用来确定延迟电路的延迟时间的延迟信息。
18.一种固态盘控制器装置,包括第一端口;第二端口,具有多个信道;中央处理单元,连接到CPU总线;缓冲存储器,被配置成存储从第二端口传输到第一端口或者从第一端口传输到第二端口的数据;主机接口控制块,连接到第一端口和CPU总线,并且被配置成根据中央处理单元的控制而与外部主机接口;缓冲控制器/仲裁器块,连接到CPU总线,并且被配置成根据中央处理单元的控制而控制缓冲存储器;第一FIFO,被配置成在主机接口控制块和缓冲控制器/仲裁器块之间提供数据传输路径;存储器接口控制块,连接到第二端口和CPU总线,并且被配置成根据中央处理单元的控制而与非易失性存储器接口;以及多个第二FIFO,被配置成在存储器接口控制块和缓冲控制器/仲裁器块之间提供数据传输路径。
19.如权利要求18所述的固态盘控制器装置,还包括多个ECC块,其分别连接到第二FIFO,该多个ECC块被配置成检测通过对应的第二FIFO传输的数据的错误,并且生成向非易失性存储器传输的数据的纠错码。
20.如权利要求19所述的固态盘控制器装置,其中当从通过对应的第二FIFO传输的数据中检测到错误时,ECC块被配置成纠正出错数据而无需中央处理单元的干涉。
21.如权利要求18所述的固态盘控制器装置,其中连接到第二端口的每个信道的非易失性存储器包括具有彼此相同的类型的非易失性存储器。
22.如权利要求21所述的固态盘控制器装置,其中相同类型的非易失性存储器连接到第二端口的每个信道。
23.如权利要求18所述的固态盘控制器装置,其中不同类型的非易失性存储器连接到第二端口的每个信道。
24.如权利要求18所述的固态盘控制器装置,其中存储器接口控制块被配置成在加电时检测连接到第二端口的信道的非易失性存储器的类型,并且根据检测结果来控制每个信道的非易失性存储器的读和写操作。
25.如权利要求18所述的固态盘控制器装置,其中存储器接口控制块被配置成当向第二端口的信道请求读和写操作时,基于硬件和软件交织协议中的任一个,控制连接到第二端口的信道的非易失性存储器的读和写操作。
26.如权利要求18所述的固态盘控制器装置,其中缓冲控制器/仲裁器块被配置成当第一和第二FIFO请求数据处理操作时以循环的方式处理数据。
27.如权利要求18所述的固态盘控制器装置,其中存储器接口控制块包括控制逻辑电路,被配置成生成通过第二端口传输到半导体存储器的第一时钟信号,该半导体存储器与第一时钟信号相同步地输出数据;延迟电路,被配置成延迟第一时钟信号,并且生成第二时钟信号;以及数据取出寄存器,被配置成与第二时钟信号相同步地从半导体存储器取出数据。
28.如权利要求27所述的固态盘控制器装置,其中延迟电路的延迟时间由来自外部源的延迟信息确定。
29.如权利要求27所述的固态盘控制器装置,其中存储器接口控制块还包括寄存器,其用于存储用来确定延迟电路的延迟时间的延迟信息。
30.一种固态盘控制器的操作方法,其中该固态盘控制器装置具有第一端口;第二端口,具有多个信道;中央处理单元,连接到CPU总线;缓冲存储器,被配置成存储数据;以及缓冲控制器/仲裁器,连接到CPU总线,并且被配置成在中央处理单元的控制下控制缓冲存储器的读和写操作,该方法包括绕开CPU总线在缓冲存储器和第一端口之间传输向缓冲存储器存储/从缓冲存储器读取的数据;以及绕开CPU总线在缓冲存储器和第二端口之间传输向缓冲存储器存储/从缓冲存储器读取的数据。
全文摘要
一种固态盘控制器装置,包括第一端口;第二端口,具有多个信道;中央处理单元,连接到CPU总线;缓冲存储器,被配置成存储要从第二端口传输到第一端口以及要从第一端口传输到第二端口的数据;缓冲控制器/仲裁器块,连接到CPU总线,并且被配置成基于中央处理单元的控制而控制缓冲存储器的读和写操作;第一数据传输块,连接在第一端口和缓冲控制器/仲裁器块之间,并且被配置成绕开CPU总线传输要向/从缓冲存储器中存储/读取的数据;以及第二数据传输块,连接在第二端口和缓冲控制器/仲裁器块之间,并且被配置成绕开CPU总线传输要向/从缓冲存储器中存储/读取的数据。
文档编号G06F3/06GK1828511SQ20061000499
公开日2006年9月6日 申请日期2006年1月11日 优先权日2005年1月11日
发明者柳同烈 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1