Ata接口的ddr固态盘的制作方法

文档序号:6760580阅读:276来源:国知局

专利名称::Ata接口的ddr固态盘的制作方法
技术领域
:本发明涉及计算机外部存储设备:磁盘的革新。具体地说,多年来,传统机械式硬盘一直被用来作为计算机的外部存储设备,随着新的磁盘存储器(例如,ATA接口的DDR固态盘)的提出,在磁盘的存储速度、防震性能、体积等技术方面都将有重大的革新。
背景技术
:当前,计算机通用的外部存储器是磁盘,就是传统的机械式硬盘,这是用来存储数据必备的外部设备,硬盘里存放着包括操作系统和各种各样的应用程序的计算机软件。从机械式硬盘诞生之日起,到现在的四,五十年中,硬盘驱动器在控制技术、接口标准、机械结构等方面进行了一系列的重大改进,新的机械式硬盘技术不断涌现,并得到广泛的应用。从市场来看,磁盘的容量、体积、速度和性能方面仍有待进一步提高方能满足用户的需求。另一种是以通用串行总线USB(UniversalSerialBus)为接口的闪盘,这是一个容量较大的存储设备,只要计算机上有USB插口就可以使用;虽然读写速度慢一些,但可以随意更换盘,且兼容性较高和防震性能好,仍受到用户广泛地重视。新近出现的一种存储器是以ATA接口的双倍数据速率DDR(DoubleDataRate)SDRAM的固态盘。比起前两种盘,固态盘有它显著的特点,如读写速度快,写操作次数没有限制等。表l给出这三种盘的性能比较-有关盘的存储技术方面亦有相应的专利知识产权。例如,专利号为ZL01114762.8(2004年4月28日)的"使用半导体存储设备的数据安全存取方法和系统"和专利号为US6,148,354(2000年11月14日)的"通用串行总线个人电脑闪存盘的结构(Architectureforauniversalserialbus-basedPCflashdisk)"。这两个专禾!j文献涉及到的USB接口和闪存盘都是成熟的技术,但在这些专利中,将其组合在一起,也体现了一种创新的亮点。<table>tableseeoriginaldocumentpage5</column></row><table>表l:三种盘的性能比较同样地,ATA接口,DDR接口是成熟的技术,但以ATA接口和DDR盘的组合而形成新的固态盘,确是继传统的机械式盘和闪盘之后出现的具有创新亮点的事物。由于DDR盘使用了更多更先进的同步电路,因此,DDR实际上不需要提高时钟频率就能加倍提高同步动态存储器SDRAM(SynchronousDynamicRAM)的速度,它允许在时钟脉冲的上边沿和下边沿传输数据,这就使得DDR的速度是标准SDRAM的两倍;而且容量上还有了提高。当然,由于SDRAM的数据易失性,ATA接口禾QDDR接口组合的固态盘必须工作在有稳定电源支持的情况下。
发明内容本发明是一项接口转换技术。即从ATA接口到DDR接口(如图l所示),从而实现固态盘的功能。接口转换过程分四个步骤(1)ATA接口分别通过两个通道传送数据到FiFo,和传送控制信息到控制逻辑;(2)控制逻辑对控制信息的分析处理产生新的信息,并将新的相关控制信息分别通过控制信息通道送到FiFo,和DDR接口;(3)FiFo根据控制信息将数据送到DDR接口;(4)DDR接口对控制信息和数据加工,从而实现固态盘的整体转换功能。本发明是根据现场可编程门阵列芯片FPGA(FieldProgrammableGateArray)设计的。根据ATA接口规范与DDR接口规范对接口类型和数量上的要求以及本发明的设计规模,我们采用的是美国Xilinx公司推出的SpantanIII系列XC3S200型芯片。(1)ATA接口ATA是一种异步接口协议,需要使用异步接口电路完成信息的同步工作。ATA规范定义了12个寄存器,这些寄存器通过FPGA随机存储器实现对信息的监控。ATA接口中的DMA的功能接收输入clk,reset,dior—,diow一和dmack等控制信息和输出dmarq和iody等控制信息。ATA接口中的接tJ模块&功能是利用FPGA芯片中的BlockRam实现ATA协议中规定的接口寄存器,并保存Identify信息。我们选用的RAM是一个双端口(A和B)器件;A和B两端口可分别对整个RAM空间进行读写操作,互不妨碍。在本发明的设计中,RAM的A端口由ATA的相关逻辑控制;B端口由控制逻辑控制,并向RAM中实现的状态寄存器中返回当前指令的状态信息。(2)控制逻辑控制逻辑主要由微控制器和FiFo控制逻辑,以及信息传送通道组成。1)微控制器微控制器的主要功能是完成ATA命令解析,初始化DDR等任务。微控制器对DDR与ATA釆用统一的编址。使用微控制器完成这些任务,可以有效地利用FPGA芯片内部的RAM资源,减少硬件设计的复杂程度。控制信息包括控制端口和控制数据。端口分布概况是,0~7,Oxf是ATA—侧的接口;90xb是FiFo控制逻辑与部分DDR的接口;0xc0xe是与DDR的接口。2)FiFo控制逻辑FiFo控制逻辑主要完成的任务是匹配DDR与ATA的数据速率,避免数据丢失。FiFo控制逻辑状态图包含以下几种状态-Idle:无操作状态;Write:等待端口A(ATA侧)写数据状态;Write—wait:当端口A接收到足够的数据时,转向DDR写的状态(端口B);Pre—read:从端口B(DDR侧)读入数据到FiFo的状态;Rea—d:等待从端口A(ATA侧)取一定量数据的状态;Read—wait:从端口B(DDR侧)读入数据到FiFo的状态。通过&上状态协调数据从ATA到DDR的传输速率,该部分逻辑配合DDR控制模块、微控制解析命令的执行状态来控制数据流入流出DDR模块,完成数据的读写与存储,实现模拟硬盘的功能。3)微控制器程序流程图微控制器的工作是通过微控制器程序实现的。微控制器程序流程包括初始化DDR程序根据协议要求初始DDR颗粒(即一个DDR芯片,它的规格包括:容量、位宽、块地址、行地址和列地址;及映射后的块地址、行地址列地址。);等待ATA命令程序PC停止取命令,并等待ATA—侧发信号激活PC;判断ATA命令程序判断需运行哪一条与ATA命令相关的子程序,并控制程序执行流程,填写ATA侧的状态寄存器;ATA命令子程序保证ATA按照协议要求完成;Soft—reset命令以上的各个状态下,当接到ATA—侧发送的Soft_reset命令时,设置—状态寄存器,并返回到等待ATA命令的状态。(3)FiFoFIFO(First-InFirst-Out)是先入先出。FiFo的功能由FPGA中的BlockRAM直接实现。FiFo有A和B两个端口,FiFo的A端口接收数据,FiFo的B端口发送数据到ATA接口一侧。(4)DDR接口DDR接口由ECC模块和DDR控制器两部分实现1)ECC模块利用海明编码技术提高数据的可靠性。海明编码是一种可以纠错的编码。它是利用在k位信息增加r位,构成一个n=k+r位的码字,然后利用数学演算法来校验nbit码字中的lbit错误。2)DDR控制器的功能是,向DDR颗粒发送读写命令,初始化指令队列,完成DDR的设计要求。DDR控制器包括以下几个状态-Initialize:表示DDR颗粒需要经过一系列初始化操作才可使用;Idle:等待状态;Auto—refesh:向DDR发送Auto一refesh命令,当大于tRFC时间后回到Idle;Active:发送Active命令,在发^Active命令前,先选好执行地址,在tRCD时间后去执行下一条命令;Read:发送读命令;Write:发送写命令,在tWR时间后进入下一个状态;Prechange—all:结束一次读和写命令,在tRP时间后进入Idle等待状态;Power_down:在执行DDR命令间隙进入省电模式。根据5dR的状态控制,上电后,控制逻辑控制ddr控制器完成一系列步骤(这些步骤在"具体实施方式"中详细列出)的工作,使得DDR按要求执行。DDR—侧地址由块地址,行地址,列地址组成(见表2)。对应不同类型的DDR颗粒有不同的分配方式。由上述可以归纳出本发明具有以下几点显著特点(l),本发明通过ATA接口到DDR接口的接口转换技术,实现固态盘的功能;(2),本发明轮廓清晰即从ATA接口到控制逻辑、FiFo,再到DDR接口。这是本发明独具匠心的巧妙设计;(3),在本发明采用现场可编程门阵列芯片FPGA中的XC3S200芯片。由于创造性的设计构思,使得本发明的固态盘在存储速率和存储量达到理想的境界。图l为本发明所阐述的固态盘整体结构框图,它是从ATA接口到DDR接口的转换技术;图2为ATA接口框图;图3为接口模块;图4为控制逻辑框图;图5为微控制器;图6为DDR接口框图;图7为接口寄存器RAM;图8微控制器的程序流程图9为FiFo控制逻辑状态转换图-,图IO为DDR控制器。具体实施例方式本发明通过从ATA接口到DDR接口的技术转换,从而实现固态盘的功能。参见图1,其工作过程如下(1)〈ATA接口101〉含两条通道通过双向〈数据102〉将数据送到〈FiFo104〉和通过双向〈控制信息103〉将控制信息送到〈控制逻辑106〉;(2)通过〈控制逻辑106〉对控制信息的分析处理产生新的信息,接着将新的相关控制信息分别通过〈控制信息105〉通道送到〈FiFo104〉,和通过双向〈控制信息108〉通道送到〈DDR接口109〉;(3)〈FiFo104〉将从双向〈数据102〉和〈控制信息105〉获得的信息经加工后,通过双向〈数据107〉送到〈DDR接口109〉。(4)〈DDR接口109〉通过〈控制信息108〉从〈控制逻辑106〉接收到控制信息和从〈数据107〉接收到数据后,经过加工后,从而实现固态盘的整体转换功能。本发明所阐述的从ATA接口到DDR接口的技术转换,就是FPGA芯片的功能,即现场可编程门阵列芯片FPGA(FieldProgrammableGateArray)。它是是美国Xilinx公司1985年推出的SpantanIII系列产品,这是Xilinx公司为了满足客户对高性能、低价格电子应用的需求而推出FPGA芯片。根据ATA接口规范与DDR接口规范对接口类型和数量上的要求以及本发明的设计规模,我们采用的是XC3S200芯片。(1)ATA接口ATA接口如图2所示,它的结构包括〈ATA数据同步逻辑201〉,〈DMA控制202〉和〈接口模块203〉,以及〈数据102〉和〈控制信息103〉。ATA接口是按照ATA规范协议要求,完成相关操作。ATA是一种异步接口协议,需要使用异步接口电路完成信息的同步工作。ATA规范定义了AlternateStatusRegister、CommandRegister、DataRegister、DeviceRegister、DeviceControlRegister、ErrorRegister、FeaturesRegister、LBAHighRegister、LBALowRegister、LBAMidRegister、SectorCountRegister、StatusRegister等12个寄存器,其中LBA(LogicBlockAddress)为逻辑块地址。这些寄存器以及固态盘监别信息是在FPGARAM(FPGA随机存储器)中实现。〈ATA数据同步逻辑201〉直接和〈数据102〉相连。〈DMA控制202〉接收输入信息clk,reset,dior—,diow—和dmack;输出信息dmarq和iody。完成与ATA接口DMA操作的控制信号。「接口模块203〉的结构如图3所示。它包括〈译码与控制电路301〉,输送通道〈寄存器地址信息302〉,(Identify信息与接口寄存器303〉,以及双向输送的〈控制信息103〉(即〈输送到控制逻辑的信息〉和〈从控制逻辑返回的信息〉)。接口模块的功能是实现向ATA协议规定的寄存器存储Identify信息,向〈控制逻辑106〉提供必要的控制信息。接口模块(见图3)的功能是利用FPGA芯片中的BlockRam实现ATA协议中规定的接口寄存器,并保存Identify信息。FPGA的RAM是一个双端口(A和B)器件;A和B两端口可分别对整个RAM空间进行读写操作,互不妨碍。即图3中的(Identify信息与接口寄存器303〉分A、B两个端口。A端口和B端口的随机存储器RAM(randomaccessmemory)如图7所示,这是FPGA资源。在本发明的设计中,RAM的A端口由ATA的相关逻辑控制;B端口由控制逻辑控制,并向RAM中实现的状态寄存器中返回当前指令的状态信息。A端口与〈寄存器地址信息302〉相联,其对应地址映射方式如下'hOOO、hOff:512byteidentify信息的地址;'hi00:Dataregister;'h101:Featureregister;'h102:Sectorcountregister;、hl03:LABlowregister(LBA为逻辑块地址);'hl04:LBAmidregister;、h105:LBAhighregister;'hl06:Deviceregister;、h1Of:Statusregister,Alternativestatueregister;、hl07:Commandregister;、h3ff:其它。(2)控制逻辑〈控制逻辑106〉(见图4)由〈微控制器401〉、〈FiFo控制逻辑402〉和双向传送的〈读写信息403〉,以及〈控制信息103〉、〈输送到FiFo的读写信息105〉和双向传送的〈控制信息108〉组成。1)微控制器〈微控制器401〉(见图5)由〈ROM501〉、单向传送〈PC502>、〈PC生成逻辑503〉、〈PC控制信息504〉、〈存储于ROM中的代码505〉,和传送〈提供ALU的操作数506〉、传送〈提供读写寄存器的信息507〉、传送〈提供端口地址信息508〉、〈ALU509〉、传送数据的〈数据510〉、〈寄存器的文件511〉、〈端口地址512〉、〈输送ALU的计算结果513〉、双向传送〈输送读写寄存器的数据514〉,以及〈数据总线515〉和〈地址108〉组成。微控制器的主要功能是完成命令解析,初始化DDR等任务。微控制器对DDR与ATA采用统一的编址。使用微控制器完成这些任务,可以有效地利用FPGA芯片内部的RAM资源,减少硬件设计的复杂程度。控制信息包括控制端口和控制数据。端口分布概况是,0~7,Oxf是ATA—侧的接口;9~0xb是FiFo控制逻辑与部分DDR的接口;0xc0xe是与DDR的接口。微控制器的ATA侧的接口地址(即图4中的〈控制信息103〉一侧),它代表相应的寄存器。控制端口逻辑的映射逻辑如下-.、國保留;'h01:Featureregister;、h02:Sectorcountregister;、h03:LBAlowregister;'固LBAmidregister;、h05:LBAhighregister;'h06:Deviceregister;、h07:Commandregister;、hOf:Statusregister,Alternativestatuaregister;、h08:Errorregister.微控制器的DDR侧(即图4中的〈控制信息108〉一侧)'h09,'hOa,'hOb控制DDR与FiFo的寄存器;、hOc,'hOd,、hOe为DDR相关寄存器。2)FiFo控制逻辑〈FiFo控制逻辑402〉主要完成的任务是匹配DDR与ATA的数据速率,避免数据丢失。FiFo控制逻辑状态图见图9。图中各个种状态的含意如下-Idle:无操作状态,见图9中的901;Write:等待端口A(ATA侧)写数据状态,见图9中的902;Write—wait:当端口A接收到足够的数据时,转向DDR写的状态(端口B),见图9中的卯3;Pre—read:从端口B(DDR侧)读入数据到FiFo的状态,见图9中的904;Rea一d:等待从端口A(ATA侧)取一定量数据的状态,见图9中的905;Read_wait:从端口B(DDR侧)读入数据到FiFo的状态,见图9中的906。通过^l上状态协调数据从ATA到DDR的传输速率,该部分逻辑配合DDR控制模块、微控制解析命令的执行状态来控制数据流入流出DDR模块,完成数据的读写与存储,实现模拟硬盘的功能。3)微控制器程序流程图微控制器的工作是通过微控制器程序实现的。微控制器程序流程图见图8。它由以下几部分组成〈初始化DDR程序801〉、〈等待ATA命令程序802〉、(Soft—reset命令803〉、〈判断ATA命令程序804〉、〈ATA命令子程序I805〉、〈ATA命令子程序I1806〉、〈ATA命令子程序n807〉。各个框的功能为初始化DDR程序根据协议要求初始DDR颗粒;等待ATA命令程序PC停止取命令,并等待ATA—测发信号激活PC;判断ATA命令程序判断需运行哪一条与ATA命令相关的子程序,并控制程序执行流程,填写ATA侧的状态寄存器;ATA命令子程序保证ATA按照协议要求完成;Soft—reset命令以上的各个状态下,当接到ATA—侧发送的Soft—reset命令时,设f状态寄存器,并返回到等待ATA命令的状态。(3)FiFoFIFO(First-InFirst-Out)是先入先出。图1中〈FiFo104〉的功能由FPGA中的BlockRAM直接实现。如图7所示,FiFo有A和B两个端口。FiFo的A端口通过〈数据102〉接收数据,并通过双向〈数据107〉(即FiFo的B端口)发送数据到ATA接口一侧,以及从〈控制逻辑106〉接收控制信息。FiFo读写控制由图4中〈FiFo控制逻辑402〉提供。(4)DDR接口DDR接口由ECC模块和DDR控制器两部分实现1)ECC模块利用海明编码技术提高数据的可靠性。海明编码是一种可以纠错的编码。它是利用在k位信息增加r位,构成一个nzk+r位的码字,然后利用数学算法来校验nbit码字中的lbit错误。2)DDR控制器的功能是,向DDR颗粒发送读写命令,初始化指令队列,完成DDR的设计要求。图1中〈DDR接口109〉的结构(见图6)由〈ECC模块601〉、〈DDR控制器602〉和双向通道〈DDR数据[15:0]603〉、〈ECC[5:0]604〉,以及单向通道〈BA[1:0]605〉、〈地址[12:0]606〉,以及〈CS—607〉、〈RAS—608〉、〈CAS—609〉、〈WE—610〉、〈CK一611〉、〈CK6012〉、〈CKE—613〉禾口〈DQS614〉组^g。DDR控制器6^2〉的状态关系如图10所示。它包括以下几个状态Initialize:表示DDR颗粒需要经过一系列初始化操作才可使用,见图10中的画l;Idle:等待状态,见图10中的1002;Auto_refesh:向DDR发送Auto_refesh命令,当大于tRFC时间后回到Idle,见图10^的1003;Active:发送Active命令,在发送Active命令前,先选好执行地址,在tRCD时间后去执行下一条命令,见图10中的1004;Read:发送读命令,见图10中的1005;Write:发送写命令,在tWR时间后进入下一个状态,见图10中的1006;Prechange—ail:结束一次读和写命令,在tRP时间后进入Idle等待状态,见图10中的1007;Power—down:在执行DDR命令间隙进入省电模式,见图10中的1008。根据)^DDR的状态控制,上电后,控制逻辑控制DDR控制器完成以下步骤的工作,能使得DDR按要求执行1.ApplypowertoVDDandVDDQ;2.ApplyVREEandVTT;3.CKEmustbeLVCMOSLow;4.Applystabledocks;5.Waitatleast200us.6.BringCKEHighwithaNOPcomman;7.Precharge_allj8.AssertNd^fortRPtime;9.Configureextendedmaderegister;10.AssertNOPfortMRDtime;11.ConfigureLoadmoderegisterandresetDLL;12.AssertNOPfortMRDtime;13.Precharde—a出14.AssertNOPfortRPtime;15.IssueAuto_refreshcommand;16.AssertNOfortRFC;17.IssueAuto—refreshcommand;18.AssertNOffortRFCtime;19.OptionalLMRcommandtoclearDLLbit;20.AssertNOPfortMRDtime。DDR—侧地址由块地址,行地址,列地址组成(见表2)。对应不同类型的DDR颗粒有不同的分配方式。<table>tableseeoriginaldocumentpage12</column></row><table>表2DDR颗粒和映射地址对照如表2所示,DDR颗粒(即一个DDR芯片,表中列出相关的12个颗粒)的规格包括:容量,位宽,块地址db,行地址row和列地址col。映射后的块地址BA,行地址ROW和列地址。DDR颗粒有多种型号,分别对应不同的块、行、列地址。通过表2的地址映射方式可以只使用一个地址选择器完成不同类型的地址映射工作,节约了FPGA上的资源,有利于布线。(5)接口命令ATA接口有五类命令PIO读/写命令,UDMA读/写命令,和非数据(控制信息)传输命令。这里PIO(ProcessI叩utOutput)命令是过程输入输出;UDMA(UltraDirectMemoryAccess)命令是超直接内存存取。本发明共设计10个命令代码,分属于ATA接口五类命令,每个命令代码均有相应的命令名称。1)PIO读命令执行顺序如下PIO读命令协议(PIOdata-incommandprotocol)的命令用于读取磁盘数据,或读取磁盘基本控制信息。①ATA接口接收ATA命令(101)a.同步ATA接口数据到当前时钟域(201);b.解析基本信息,如起始地址、读/写使能等(203);c.向控制逻辑报告接收到的命令(106)。②解析ATA命令的执行顺序a.微控制器401接收①c的信号;b.微控制器401启动软件程序判断ATA命令(804);c.微控制器执行相应程序(805,806~807);d.执行过程中,启动FiFo(105)和利用FiFo104,并使之匹配ATA与DDR的数据传输速率(102—107);d.在执行过程中,控制逻辑把命令的基本信息(起始地址、读/写)通知DDR接口(109)。③结束执行命令的顺序-a.微控制器401、软件子程序(805~807)执行完毕;b.把执行状态(如成功或失败)写回到ATA接口(303);c.子程序跳转到等待ATA命令程序802。2)PIO写命令执行顺序如下PIO写命令协议(PIOdata-outcommandprotocol)的命令用于将数据写入磁盘。①ATA接口接收ATA命令(101)a.解析基本命令,如起始地址等;b.向控制逻辑报告接收到的命令。②解析ATA命令的执行顺序a.微控制器401接收l.b的信号;b.微控制器401启动程序判断ATA命令;c.微控制器执行相应程序;d.执行过程中,FiFo主机侧数据,根据FiFo控制逻辑的状态,间歇向DDR输送数据;e.在执行过程中,控制逻辑把命令的基本信息(起始地址、读/写)写到DDR接口。◎结束执行命令的顺序a.微控制器401、软件子程序(805-807)执行完毕;b.把执行状态(如成功或失败)写回到ATA接口(303);c.子程序跳转到等待ATA命令程序(802)。3)UDMA读/写命令执行顺序如下UDMA读/写命令是以DMA协议(DMAprotocol)的方式读/写一个或多个、w-ir~i数据。①ATA接口接收ATA命令(101)(只有读需要同步数据)a.同步ATA接口数据到当前时钟域(101);b.解析命令基本信息(203);c.DMA控制(202)完成DMA相关的协议操作;d.向控制逻辑(106)报告。②此小节的读/写命令分别等同于P10②小接节的读/写命令;③此小节的读/写命令分别等同于P10③小接节的读/写命令;注对于本发明的设计来说,在内部数据传输的方式上,PIO和DMA没有明显的不同。它们的不同之点主要在ATA接口的握手信号的使用上。例如,dmarq,dmack两个信号,主要用于传输开始和结束的握手信号,而PIO则不需要这些信号来参与数据传输。4)非数据(控制信息)传输命令非数据命令协议(Non-datacommandprotocol)的命令用于控制磁盘状态,和设置磁盘参数。①接收ATA命令a.解析基本信息;b.向控制逻辑报告(106)接收到ATA命令。②解析并执行命令a.微控制器收到①b信号;b.启动软件程序,判断ATA命令(804);c.执行相应程序(805—807);d.写回相应寄存器(303)。(6)两则例子在下面的例子中,先对输入寄存器、输出寄存器、符号含意、命令描述和流程作一介绍,从输入信号开始,给出具体例子。两则例子均为读的例子,而写功能只是读功能反方向而已,所以省略了写的例子。1)例l,命令名称READSECT0RLS(直接从设备读取数据到主机);命令代码20h(='h20,以16进制表示);这是10个命令代码中的一个;输入寄存器给寄存器赋值,设以Listl为名表示这一组寄存器;寄存器名称(字长8bit)寄存器内容FeaturenaSectorCountSectorCountLBALowLBA[7:0]LBAMidLBA[15:0]LBAHighLBA[23:16]DeviceobsLBAobsDEVLBA[27:24]Command2Oh输出寄存器输出寄存器值,设以List2为名表示这一组寄存器;寄存器名称(字长8bit)寄存器内容ErrorSectorCountnaLBALownaLBAMidnaLBAHighnaDeviceobsLBAobsDEVnanarmnaStatusBSYDRDYDFnaDRQnanaERR符号解释-"BSY"表式是否忙,l为忙,0为不忙;"DF"表示此位不用;"DEV"表示是否支持主设备,l为支持,O为不支持;"DRDY"表示是否准备好,l为准备好,O为未准备好;"DRQ"表示是否请求,1为请求,0为不请求;"ERR"表示是否出错,l为出错,O为不出错。"LBA"表示是否支持LBA地址,l为支持,O为不支持;"na"表此寄存器现不用,可不写;"obs"等于l为使用,O表示此位不用;命令描述这条命令从起始地址(由LBA规定)读指定的Sectors(由SectorCount指定),通过ATA接口IOI输出数据到主机侧,把命令的执行状态通过Status寄存器返回;流程-主机侧填写好输入信号,如Listl组寄存器,各种寄存器在303中实现,假定从OSector(0扇区)开始读1个Sector;输入信号-、h02sectorcount:1、h03LBALow:0、h04LBAMid:0、h05LBAHigh:0、h06Device:'b01010000、h07、h20;当主机侧填写CommandRegister时,ATA接口(101)通知控制逻辑(106)。微控制器向StatusRegister填写、hD0(BSY=1,DRDY=1),此时主机侧还不能立即执行命令,微控制器从'h07中读到'h20(命令代码),开始解析命令(804),完成后,向StatusRegister填写'h58(DRDY-l,DRQ=1),通知主机侧可以执行命令。同时微控制器把'h02中的数据填到相应的控制逻辑,把'h03~'h05的信息填写到(109),并向104,109指明读写。109把从DDR读到的数据写到104,等待主机侧通过101把104中的数据读走,直到完成命令。2)例2命令名称IDENTIFYDEVICE(直接从设备读取数据到主机);命令代码ECh;输入寄存器给寄存器赋值,设以Listl为名表示这一组寄存器;寄存器名称(字长8bite)寄存器内容FeaturenaSectorCountnaLBALowrmLBAMidnaLBAHighnaDeviceobsnaobsDEVnetnananaCommandECh输出寄存器给寄存器赋值,设以List2为名表示这一组寄存器;寄存器名称(字长8bit)寄存器内容ErrorrmSectorCountri3LBALowna_LBAMidLBAHighDeviceobsHaobsDEVStatusBSYDRDYDFna符号解释同例1;命令描述-这条命令从主机侧发EC命令读取设备侧的各种参数。如地址格式、磁盘大小、支持传输的速率、方式等。流程主机侧按照Listl填写寄存器、h06:、b01010000、h07:、hEC当主机侧填写CommandRegister时,ATA-interface(101)通知控制逻辑(106)。微控制器向StatusRegister填写、hD0(BSY=1,DRDY-l),然后从、h07端口读到命令代码'hEC,并执行命令解析程序,最后向StatusRegister填写'h58(DRDY=1,DRQ=1),等待主机侧读数据。此命令数据存储在303中,当数据传输完毕,微控制器向'hOf,StatusRegister填写'h50,结束执行命令。权利要求1.一种由接口转换技术实现固态盘的方法,即从ATA接口到DDR接口的技术转换。接口转换过程分四个步骤1)ATA接口分别通过两个通道传送数据到FiFo,和传送控制信息到控制逻辑;2)控制逻辑对控制信息的分析处理产生新的信息,并将新的相关控制信息分别通过控制信息通道送到FiFo,和DDR接口;3)FiFo根据控制信息将数据送到DDR接口;4)DDR接口对控制信息和数据加工,从而实现固态盘的整体转换功能。2.根据权利要求1所叙述的方法,其中ATA接口的功能是ATA是一种异步接口协议。ATA接口中的数据同步逻辑是通过数据通道将数据送到FiFo。ATA接口中的DMA的功能接收输入和输出控制信息。ATA接口中的接口模块的功能是利用FPGA芯片中的BlockRam实现ATA协议中规定的接口寄存器,并保存Identify信息。FPGA的BlockRAM是一个双端口(A和B)器件;A和B两端口可分别对整个RAM空间进行读写操作,互不妨碍。在本发明的设计中,RAM的A端口由ATA的相关逻辑控制;B端口由控制逻辑控制,并向RAM中实现的状态寄存器中返回当前指令的状态信息。3.根据权利要求1所叙述的方法,其中第二项控制逻辑的结构是由微控制器和FiFo控制逻辑,以及信息传送通道组成。1)微控制器微控制器的主要功能是完成命令解析,初始化DDR等任务。微控制器对DDR与ATA采用统一的编址。使用微控制器完成这些任务,可以有效地利用FPGA芯片内部的RAM资源,减少硬件设计的复杂程度。控制信息包括控制端口和控制数据。端口分布概况是,0~7,f是ATA—侧的接口;9~b是FiFo控制逻辑与部分DDR的接口;c^是与DDR的接口。2)FiFo控制逻辑FiFo控制逻辑主要完成的任务是匹配DDR与ATA的数据速率,避免数据丢失。FiFo控制逻辑状态图包含以下7种状态(详细情况见"具体实施方式")Idle,Write,Write_wait,Pre—read,Read禾QRead—wait。通过这些工作状态协调数据从ATA到DDR的传输速i,该部分逻辑配合控制模块、微控制解析命令的执行状态来控制数据流入流出DDR模块,完成数据的读写与存储,实现模拟硬盘的功能。3)微控制器程序流程图微控制器的工作是通过微控制器程序实现的。微控制器程序流程包括初始化DDR程序,等待ATA命令程序,判断ATA命令程序,ATA命令子程序和Soft_reset命令。执行Soft—reset命令,是设置状态寄存器,并返回到等待ATA命令的状态,从而实现微控制i程序的循环。4.根据权利要求l所叙述的方法,其中第三项是FiFoFiFo的功能由FPGA中的BlockRAM直接实现。从而体现FIFO(First-InFirst-Out)先入先出的作用。5.根据权利要求1所叙述的方法,其中第四项是DDR接口DDR接口的功能由ECC模块和DDR控制器两部分实现。1)ECC模块利用海明编技术提高数据的可靠性。海明编码是一种可以纠错的编码。它是利用在k位信息增加r位,构成一个n=k+r位的码字,然后利用数学演算法来校验nbite码字中的1bite错误。2)DDR控制器的功能是,向DDR颗粒发送读写命令,初始化指令队列,完成DDR的设计要求。DDR控制器包括以8个状态Initialize,Idle,Auto_refesh,Active,Read,Write,Prechange_all禾口Power—down。根据DDR控i器的状态控、U,上电后,控制逻辑控制DDR控制器完成一系列步骤(这些步骤在"具体实施方式"中详细列出)的工作,使得DDR按要求执行。由上述可以归纳出本发明具有以下几点显著特点(l),本发明通过ATA接口到DDR接口的接口转换技术,实现固态盘的功能;(2),本发明轮廓清晰即从ATA接口到控制逻辑、FiFo,再到DDR接口。这是本发明独具匠心的巧妙设计;(3),在本发明采用现场可编程门阵列芯片FPGA中的XC3S200芯片。由于创造性的设计构思,使得本发明的固态盘在存储速率和存储量达到理想的境界。全文摘要一种能够通过接口转换技术实现的固态盘,在本发明中得到充分地表述。这项接口转换技术就是从ATA接口到DDR接口(见摘要附图)。接口转换过程分四个步骤(1)ATA接口分别通过两个通道传送数据到FiFo,和传送控制信息到控制逻辑;(2)控制逻辑对控制信息的分析处理产生新的信息,并将新的相关控制信息分别通过控制信息通道送到FiFo,和DDR接口;(3)FiFo根据控制信息将数据送到DDR接口;(4)DDR接口对控制信息和数据加工,从而实现固态盘的整体转换功能。本发明是根据现场可编程门阵列芯片FPGA(FieldProgrammableGateArray)设计的。FPGA是是美国Xilinx公司1985年推出的SpantanIII系列产品。根据ATA接口规范与DDR接口规范对接口类型和数量上的要求以及本发明的设计规模,我们采用的是XC3S200芯片。文档编号G11C7/00GK101105970SQ20061008968公开日2008年1月16日申请日期2006年7月12日优先权日2006年7月12日发明者琦林申请人:北京赫芯斯信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1