发明内容
基于此,有必要针对上述技术问题,提供一种系统芯片存储的控制装置和系统芯片。
一方面,本申请一个实施例提供一种系统芯片存储控制装置,包括:
数据寄存器;
解码纠错单元,与所述数据寄存器信号连接,用于对所述数据寄存器寄存的数据进行解码纠错,得到第一目标读数据,并将所述第一目标读数据返回至所述数据寄存器;
流水线控制单元,与所述数据寄存器和所述解码纠错单元信号连接,用于接收微处理器发送的控制信号,根据所述控制信号获取第一控制信息和第一地址信息,并在第一读时钟周期向内存模块发送第一控制信息和第一地址信息,在第二读时钟周期接收所述内存模块返回的第一初始读数据,将所述第一初始读数据寄存于所述数据寄存器,在第三读时钟周期,控制所述解码纠错单元工作,并将所述第一目标读数据返回至所述微处理器,其中,所述第一初始读数据是所述内存模块根据所述第一控制信息和所述第一地址信息获取的数据。
在其中一个实施例中,还包括:
地址预测单元,与所述流水线控制单元信号连接,用于在第二读时钟周期根据地址预测控制信号进行地址预测,得到预测地址信息,并将所述预测地址信息发送至所述内存模块,其中,所述地址预测控制信号由所述流水线控制单元生成。
在其中一个实施例中,所述流水线控制单元包括:
流水线控制器,与所述数据寄存器和所述解码纠错单元信号连接;
时钟控制器,与所述流水线控制器信号连接,用于控制所述流水线控制器在第一读时钟周期,向所述内存模块发送所述第一控制信息和第一地址信息;在第二读时钟周期,接收所述内存模块返回的所述第一初始读数据;在第三读时钟周期,控制所述解码纠错单元工作,并将所述第一目标读数据返回至所述微处理器。
在其中一个实施例中,还包括:
控制信息寄存器,与所述流水线控制单元信号连接,所述流水线控制单元还用于根据所述控制信号,获取第二控制信息和第二地址信息,并根据所述第二控制信息和所述第二地址信息从所述内存模块中读取第二初始读数据,同时将所述第二控制信息寄存于所述控制信息寄存器;接收所述微处理器发送的非全字写数据,将所述第二初始读数据和所述非全字写数据寄存于所述数据寄存器;在第三写时钟周期,控制所述解码纠错单元根据所述第二初始读数据和所述非全字写数据,确定目标非全字写数据,并将所述目标非全字写数据发送至所述内存模块。
在其中一个实施例中,所述流水线控制单元还用于在第一写时钟周期,根据所述第二控制信息确定读请求信息,并将所述读请求信息和所述第二地址信息发送至所述内存模块,且接收所述内存模块在第二写时钟周期发送的第二初始读数据,其中,所述第二初始读数据是所述内存模块根据所述第二地址信息和所述读请求信息获取的数据。
在其中一个实施例中,所述流水线控制单元还用于控制所述解码纠错单元对所述第二初始读数据进行解码纠错,得到解码数据;根据所述非全字写数据的地址标识,将所述非全字写数据覆盖至所述解码数据,得到初始非全字写数据;对所述初始非全字写数据进行编码,得到所述目标非全字写数据。
在其中一个实施例中,所述流水线控制单元还用于根据所述控制信号,获取第三控制信息和第三地址信息,并在第四写时钟周期将所述第三地址信息发送至所述内存模块,将所述第三控制信息寄存于所述控制信息寄存器,在第五写时钟周期,接收所述微处理器发送的全字写数据,将所述全字写数据输入所述解码纠错单元,得到目标全字写数据,并将所述目标全字写数据和所述第三控制信息发送至所述内存模块。
在其中一个实施例中,还包括:
高级高性能总线从机,与所述流水线控制单元信号连接,用于将所述微处理器通过高级高性能总线传输的信号转换为所述控制信号。
另一方面,本申请一个实施例提供一种系统芯片,包括:
如上所述的系统芯片存储控制装置;
微处理器,与所述流水线控制单元信号连接;
内存模块,与所述流水线控制单元信号连接。
在其中一个实施例中,所述系统芯片存储控制装置还包括高级高性能总线从机,信号连接于所述微处理器和所述流水线控制单元之间,所述微处理器与所述高级高性能总线从机通过高级高性能总线连接。
本申请实施例提供一种系统芯片存储的控制装置和系统芯片。所述系统芯片存储控制装置包括数据寄存器、解码纠错单元和流水线控制单元。所述解码纠错单元与所述数据寄存器信号连接,所述流水线控制单元与所述数据寄存器和所述解码纠错单元信号连接。本申请提供的系统芯片存储控制装置通过流水线控制单元可以使得微处理器对内存模块进行读操作时,在第二读时钟周期接收到所述第一初始读数据后,将该数据寄存于所述数据寄存器,在第三读时钟周期,再利用所述解码纠错单元对所述第一初始读数据进行解码纠错,最终得到返回至所述微处理器的所述第一目标读数据。这样可以避免在所述第二读时钟周期对所述第一初始读数据进行解码纠错时,跨越至第三读时钟周期,从而能够解决所述微处理器对所述内存模块进行读操作时存在的时序混乱的问题。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似改进,因此本申请不受下面公开的具体实施例的限制。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。在本申请的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
在本申请中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
下面以具体的实施例对本申请的技术方案以及本申请的技术方案如何解决技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
请参见图1,本申请提供的系统芯片存储控制装置10可以用于对系统芯片的存储进行控制,所述系统芯片中包括微处理器20和内存模块30。所述微处理器20是由一片或者几片大规模的集成电路组成的中央处理器。所述微处理器20能够完成取指令、执行指令,以及与外界存储器交换信息等操作,所述微处理器20可以是各种有AHB(Advanced High-performance Bus,高级高性能总线)接口的处理器。所述内存模块30可以是各种各样的存储器,例如:静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)和增强型SDRAM(ESDRAM)等。所述内存模块30可以设置在所述系统芯片上,也可以设置在所述系统芯片外,与所述系统芯片连接。所述系统芯片存储控制装置10可以设置在所述系统芯片上,也可以设置在所述系统芯片外,与所述微处理器20和所述内存模块30信号连接。所述系统芯片存储控制装置10用于在微处理器20对所述内存模块30进行读操作、全字写操作或者非全字写操作时,对微处理器20和内存模块30发送的信息和数据等进行处理。利用微处理器20对内存模块30进行读操作时,如图2和图3所示,在时钟信号的地址周期发送地址信息,在时钟信号的数据周期读取数据。在引入ECC(Error Correcting Code,错误检查和纠正)技术后,需要在时钟信号的数据周期内对读取的数据进行解码纠错。通常所述内存模块30会分bank进行组织,所述内存模块30在返回数据时,会经过bank模块和仲裁器等,路径较长,若在一个数据时钟周期快要结束时才接收到数据,则在对数据进行解码纠错的任务在这个数据时钟周期不能完成,需要在下一个数据时钟周期进行。
请参见图4,本实施例涉及微处理器20对内存模块30进行读操作时,系统芯片存储控制装置10包括数据寄存器100、解码纠错单元200和流水线控制单元300。
所述解码纠错单元200与所述数据寄存器100信号连接,用于对所述数据寄存器100寄存的数据进行解码纠错,得到第一目标读数据,并将所述第一目标读数据返回至所述数据寄存器100。所述流水线控制单元300与所述数据寄存器100和所述解码纠错单元200信号连接,用于接收微处理器20发送的控制信号,根据所述控制信号获取第一控制信息和第一地址信息,并在第一读时钟周期向所述内存模块30发送第一控制信息和第一地址信息,在第二读时钟周期接收所述内存模块30返回的第一初始读数据,将所述第一初始读数据寄存于所述数据寄存器100,在第三读时钟周期,控制所述解码纠错单元200工作,并将所述第一目标读数据返回至所述微处理器20,其中,所述第一初始读数据是所述内存模块30根据所述第一控制信息和所述第一地址信息获取的数据。
所述第一读时钟周期、所述第二读时钟周期和所述第三读时钟周期为所述微处理器20对所述内存模块30进行读操作时的时钟信号内的不同周期。在一个具体的实施例中,所述第一读时钟周期、所述第二读时钟周期和所述第三读时钟周期可以是时钟信号依次相邻的三个时钟周期。在本实施例中,所述流水线控制单元300可以在第一读时钟周期内的时钟信号上升沿时刻发送所述第一控制信息和所述第一地址信息,也可以在第一读时钟周期内的任意时刻发送所述第一控制信息和第一地址信息。同样的,所述流水线控制单元300可以在第三读时钟周期内的时钟信号上升沿时刻控制所述解码纠错单元200工作,并将所述第一目标读数据返回至所述微处理器20,也可以在第三读时钟周期内的任意时刻控制所述解码纠错单元200工作,并将所述第一目标读数据返回至所述微处理器20。
所述流水线控制单元300根据所述微处理器20发送的控制信号,获取所述第一地址信息和第一控制信息,并在第一读时钟周期将所述第一地址信息和所述第一控制信息发送至所述内存模块30。所述第一地址信息是指所述微处理器20需要读取的所述内存模块30中的数据的地址。所述第一控制信号可以包括读请求信息和使能信号等。所述内存模块30根据所述第一地址信息和所述第一控制信息读取所需的数据,得到第一初始读数据。所述流水线控制单元300在第二读时钟周期接收所述第一初始读数据,并将所述第一初始读数据寄存在所述数据寄存器100中。所述流水线控制单元300在第三读时钟周期将所述数据寄存器100中的所述第一初始读数据传输至所述解码纠错单元200,控制所述解码纠错单元200对所述第一初始读数据进行解码纠错,即,先对所述第一初始读数据进行解码;若解码后的数据存在错误,则对解码后的数据进行纠错,得到第一目标读数据,并控制所述解码纠错单元200将所述第一目标读数据通过所述数据寄存器100返回至所述微处理器20。在一个具体的实施例中,所述解码纠错单元200采用ECC(Error Correcting Code,错误检查和纠正)技术。在本实施例中,通过对所述第一初始读数据进行解码纠错处理,可以提高所述微处理器20对所述内存模块30进行读操作的准确性。
具体的,所述流水线控制单元300对于所述微处理器20对所述内存模块30进行多次读操作时的数据和信息控制过程如图5所示,图中clk为是时钟信号,clk处于上升沿有效,address为地址信息,在hready信号拉高后,所述内存模块30将所述第一目标读数据写入总线,data为所述微处理器20得到的所述第一目标读数据。A1、A2、A3和A4为发送的地址信息,D1、D2、D3和D4为所述微处理器20得到的读数据。
本实施例提供的系统芯片存储控制装置10包括数据寄存器100、解码纠错单元200和流水线控制单元300。所述解码纠错单元200与所述数据寄存器100信号连接,所述流水线控制单元300与所述数据寄存器100和所述解码纠错单元200信号连接。本申请提供的系统芯片存储控制装置10通过流水线控制单元300可以使得微处理器20对内存模块30进行读操作时,在第二读时钟周期接收到所述第一初始读数据后,将该数据寄存于所述数据寄存器100;在第三读时钟周期,再利用所述解码纠错单元200对所述第一初始读数据进行解码纠错,最终得到返回至所述微处理器20的所述第一目标读数据。这样可以避免在所述第二读时钟周期对所述第一初始读数据进行纠错编码时,跨越至第三读时钟周期,从而能够解决所述微处理器20对所述内存模块30进行读操作时存在的时序混乱的问题,进而能够提高所述微处理器20对所述内存模块30进行读操作的准确性和可靠性。
请参见图6,在一个实施例中,所述系统芯片存储控制装置10还包括地址预测单元400。所述地址预测单元400与流水线控制单元300信号连接,用于在第二读时钟周期根据地址预测控制信号进行地址预测,得到预测地址信息,并将所述预测地址信息发送至所述内存模块30,其中,所述地址预测控制信号为所述流水线控制单元300生成的。
在进行多次读操作时,在第一次读操作的第二时钟周期,所述流水线控制单元300会生成所述地址预测控制信号,所述地址预测单元400根据所述地址预测控制信号和所述第一地址信息,可以得到所述预测地址信息。所述预测地址信息为第二次读操作的地址信息。在一个具体的实施例中,在AHB的burst模式下,地址是固定递增的,则所述地址预测单元400将所述第一地址信息加一,就可以得到所述预测地址信息。所述地址预测单元400在第二读时钟周期在得到所述预测地址信息后,直接将所述预测地址信息发送至所述内存模块30。此时所述第二读时钟周期作为了下一次读操作的第一个读时钟周期,这样增加了所述微处理器20对所述内存模块30进行读操作时的数据吞吐能力。所述流水线控制单元300对于所述微处理器20对所述内存模块30进行多次读操作时的数据和信息控制过程如图7所示,图中NONSEQ表示所述微处理器20传输的所述第一地址信息和控制信息与上一次传输的地址信息无关,SEQ表示所述微处理传输的地址信息和上一次传输的地址信息有关,hready信号在第一次读操作的所述第二读时钟周期后一直处于拉高的状态。比较图7和图5可知,进行4次读操作,时钟周期由9个时钟周期减少到6个时钟周期,数据的吞吐量可以增加1.5倍。同理,在INCR16的传输模式下,数据的吞吐量可以增加1.83倍,在INCR8的传输模式下,数据的吞吐量可以增加1.7倍。
请参见图8,在一个实施例中,所述流水线控制单元300包括流水线控制器310和时钟控制器320。所述流水线控制器310与所述数据寄存器100和所述解码纠错单元200信号连接。所述时钟控制器320与所述流水线控制器310信号连接,用于控制所述流水线控制器310在第一读时钟周期,向所述内存模块30发送所述第一控制信息和第一地址信息;在第二读时钟周期,接收所述内存模块30返回的所述第一初始读数据;在第三读时钟周期,控制所述解码纠错单元200工作,并将所述第一目标读数据返回至所述微处理器20。在本实施例中,所述时钟控制器320用于控制所述第一读时钟周期、所述第二读时钟周期和所述第三读时钟周期的有效性,只要当时钟信号为上升沿时,时钟信号才有效。在时钟信号的第一个上升沿和第二个上升沿之间为第一读时钟周期,时钟信号的第二个上升沿和第三个上升沿之间为第二读时钟周期,时钟信号的第三个上升沿和第四个上升沿之间为第三读时钟周期。所述时钟控制器320在控制时钟信号的第一个上升沿来临时,所述流水线控制器310才可以开始向所述内存模块30发送第一控制信息和第一地址信息。所述时钟控制器320在控制时钟信号的第二个上升沿来临时,所述流水线控制器310才可以接收所述内存模块30返回的所述第一初始读数据。所述时钟控制器320在控制时钟信号的第三个上升沿来临时,所述流水线控制310才可以控制所述解码纠错单元200工作,并将所述第一目标读数据返回至所述微处理器20。在本实施例中,通过所述时钟控制器320对时钟信号的控制,使得所述流水线控制器310在相应的读时钟周期执行相应的任务,可以提高所述微处理器20对所述内存模块30进行读操作的效率。
请继续参见图6,本实施例涉及微处理器20对内存模块30进行非全字写操作时,所述系统芯片存储控制装置10还包括控制信息寄存器500。所述控制信息寄存器500与所述流水线控制单元300信号连接,所述流水线控制单元300还用于根据所述控制信号,获取第二控制信息和第二地址信息,并根据所述第二控制信息和所述第二地址信息从所述内存模块30中读取第二初始读数据,同时将所述第二控制信息寄存于所述控制信息寄存器500;接收所述微处理器20发送的非全字写数据,将所述第二初始读数据和所述非全字写数据寄存于所述数据寄存器100;在第三写时钟周期,根据所述第二初始读数据和所述非全字写数据,确定目标非全字写数据,并将所述目标非全字写数据发送至所述内存模块30。
对第一写时钟周期、第二写时钟周期和第三写时钟周期的具体描述可以参考上述对第一读时钟周期、第二读时钟周期和第三读时钟周期的描述,在此不再赘述。
所述微处理器20对所述内存模块30进行非全字写操作时,在第一个写时钟周期,所述流水线控制单元300根据所述控制信号,获取所述第二控制信息和所述第二地址信息,并根据所述第二控制信息和所述第二地址信息从所述内存模块30中读取所述第二初始读数据。具体的,所述流水线控制单元300根据所述第二控制信息可以确定读请求信息,并将所述读请求信息和所述第二地址信息一起发送至所述内存模块30。所述内存模块30根据所述读请求信息和所述第二地址信息可以得到所述第二初始读数据。在第二写时钟周期,所述流水线控制单元300接收所述内存模块30发送的所述第二初始读数据。同时,在第二写时钟周期,所述流水线控制单元300还接收所述微处理器20发送的所述非全字写数据,并将所述第二初始读数据和所述非全字写数据寄存在所述数据寄存器100中。其中,所述第二地址信息为所述微处理器20需要向所述内存模块30中写入的数据的地址信息,所述第二控制信息可以包括写请求操作和使能信号等。所述非全字写数据为所述微处理器20需要写入所述内存模块30中的数据。
在第三写时钟周期,所述流水线控制单元300将所述数据寄存器100中的所述第二初始读数据和所述非全字写数据传输至所述解码纠错单元200,并控制所述解码纠错单元200根据所述第二初始读数据和所述非全字写数据,确定所述目标非全字写数据。具体的,所述流水线控制单元300控制所述解码纠错单元200对所述第二初始读数据进行解码纠错,得到解码数据;根据所述非全字写数据的地址标识,将所述非全字写数据覆盖至所述解码数据,得到初始非全字写数据;对所述初始非全字写数据进行编码,得到所述目标非全字写数据。所述解码纠错单元200先对所述第二初始读数据进行解码,并判断解码后的数据是否存在错误。若解码后的所述第二初始读数据存在错误,则对其进行纠错,最终得到准确的解码数据。所述非全字写数据具有表征其需要写入的位置的地址标识,所述解码数据也具有地址标识。根据所述非全字写数据的地址标识和所述解码数据的地址标识,可以将所述非全字写数据覆盖在所述解码数据上需要写入的地址上,得到所述初始非全字写数据。所述解码纠错单元200对所述初始非全字写数据进行编码,得到最终的所述目标非全字写数据。在一个具体的实施例中,所述非全字写数据对应的地址标识为00,所述解码数据相对应的地址标识为0023,则将所述非全字写数据覆盖至所述解码数据的地址标识00所在的位置,得到所述目标非全字写数据。
具体的,所述流水线控制单元300对于所述微处理器20对所述内存模块30的非全字写操作时的数据和信息的控制过程如图9所示,图中,we表示写,address表示所述第二地址信息,A_write_data表示所述微处理器20发送的非全字写数据,B_write_data表示所述内存模块30接收到所述目标非全字写数据,A_read_data表示所述内存模块30发送的所述第二初始读数据。
在一个实施例中,所述流水线控制单元300还用于根据所述控制信号,获取第三控制信息和第三地址信息,并在第四写时钟周期将所述第三地址信息发送至所述内存模块30,将所述第三控制信息寄存于所述控制信息寄存器500,在第五写时钟周期,接收所述微处理器20发送的全字写数据,将所述全字写数据输入所述解码纠错单元200,得到目标全字写数据,并将所述目标全字写数据和所述第三控制信息发送至所述内存模块30。
在本实施例中,所述第四写时钟周期和所述第五写时钟周期为所述微处理器20在对所述内存模块30进行全字写操作时的时钟信号的任意两个周期,所述第四写时钟周期在所述第五写时钟周期之前。在一个具体的实施例中,所述第四写时钟周期和所述第五写时钟周期为依次相邻的两个周期。
所述微处理器20对所述内存模块30进行全字写操作时,在第四写时钟周期,所述流水线控制单元300根据所述控制信号,获取所述第三地址信息和所述第三控制信息。所述第三地址信息为所述微处理器20需要在所述内存模块30中写入的数据的地址,所述第三控制信息可以包括所述微处理器20发送的写操作请求和使能信号等。所述流水线控制单元300将所述第三地址信息发送至所述内存模块30,使得所述内存模块30获取所述微处理器20需要写入数据的地址。同时,所述流水线控制单元300将所述第三控制信息寄存于所述控制信息寄存器500。在第五写时钟周期,所述流水线控制单元300接收所述微处理器20发送的所述全字写数据,并将所述全字写数据输入所述解码纠错单元200。所述流水线控制单元300控制所述解码纠错单元200对所述全字写数据进行编码,可以得到所述目标全字写数据。所述目标全字写数据即为写入所述内存模块30中所述第三地址信息处的数据。所述流水线控制单元300将所述目标全字写数据和所述控制信号寄存单元500中的所述第三控制信息发送至所述内存模块30。
请参见图10,在一个实施例中,所述系统芯片存储控制装置10还包括高级高性能总线从机600。所述高级高性能总线从机600信号连接于所述微处理器20和所述流水线控制单元300之间,用于将所述微处理器20通过高级高性能总线传输的信号转换为所述控制信号。所述微处理器20包括AHB接口,通过AHB总线与所述高级高信号总线从机600连接。所述微处理器20通过AHB总线传输的为AHB协议信号,通过所述高级高性能总线从机600可以将所述AHB协议信号转换为所述控制信号,以便于所述流水线控制单元300根据所述控制信号进行控制工作。在本实施例中,所述高级高性能总线从机600的设置提高了所述系统芯片存储控制装置10的实用性和便捷性。
请继续参见图1,本申请一个实施例提供一种系统芯片包括如上所述的系统芯片存储控制装置10、微处理器20和内存模块30。所述微处理器20与所述流水线控制单元300信号连接,所述内存模块30与所述流水线控制单元300信号连接。对于所述微处理器20和所述内存模块30的描述可以参考上述实施例的描述,在此不再赘述。由于所述系统芯片包括所述系统芯片存储控制装置10,所以所述系统芯片具有所述系统芯片存储控制装置10的所有结构和有益效果,在此不再赘述。
在一个实施例中,所述系统芯片存储控制装置10还包括高级高性能总线从机600。所述高级高性能总线从机600信号连接与所述微处理器20和所述流水线控制单元300之间。所述微处理器20与所述高级高性能总线从机600通过AHB总线连接。对所述高级高性能总线从机600和所述AHB总线的描述可以参考上述实施例中的描述,在此不再赘述。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。