一种基于指令预取的多核共享存储器控制设备的制作方法

文档序号:6425167阅读:279来源:国知局
专利名称:一种基于指令预取的多核共享存储器控制设备的制作方法
技术领域
本发明涉及一种数据存储控制系统,具体的说,涉及一种基于指令预取的多核共享存储器控制设备。
背景技术
自上世纪80年代以来,处理器的性能一直按照摩尔定律以每18个月翻一番的速度提升,而存储器访问延迟平均每12个月仅能提高10%。处理器与存储器性能差距即“存储器墙”的问题越来越大,已成为并行实时多核处理系统主要考虑的问题。目前,动态随机存储器(DRAM)已经广泛用于数据存储领域。一般使用DRAM控制设备来控制对DRAM的读写。DRAM控制设备接收处理器的读/写请求,通过命令解析控制 DRAM的操作,将数据写入DRAM或者将DRAM数据传入处理器。图1所示的是传统多核共享 DRAM控制设备120的框图。如图1所示,DRAM控制设备包括数据FIF0100,用来暂存处理器的写入数据或者返回给处理器的数据;控制模块102,根据处理器的访存指令的类型,控制内部状态的跳转和数据通路的数据传输,并将存储器控制信号发送给I/O接口模块108 ;数据通路104,用来控制数据的传输,将待写入的数据从数据FIFO传输到I/O接口模块108, 或者将从I/O读出的数据写入数据FIF0100 ;I/O接口模块108,接受来自控制模块102的控制信号和数据通路的数据信号,并根据存储器的时序标准完成同存储器的命令和数据的传输。DRAM存储器110作为一存储阵列,由行、列组成,对DRAM存储器110操作需要按照严格的工业标准。首先需要通过行选通指定存储块地址(Bank ADDR)和行地址(Row ADDR), 然后经过行延迟(tRCD)后指定列地址(Column ADDR),此时真正选中存储器的某一地址, 经过读延迟(tCL)数据出现在存储总线上。如果对该地址读写操作完后即对当前选通行进行预充电,称为页关闭策略(Close I^age),如果不预充电当前行,称为页打开策略(Open Page)。目前DRAM控制设备一般采用静态的控制策略,即是指在对DRAM读写操作完成后根据静态的控制策略单一的选择关闭或者继续打开当前的操作的某一行。静态的控制策略同 DRAM寻址的方式密切相关。比如说DRAM控制设备采用页打开(Open Page)的静态的控制策略,即每次读写操作完都不会预充电,当前操作行处于打开状态。页打开的静态策略非常适合于DRAM存储具有数据相关性的应用场合。但是若DRAM寻址的下一个操作是访问同一个存储块(Bank)其他行,就会造成访问的页冲突(PageConfict),需要先关闭当前操作行, 然后再发新的行地址、列地址,同样的道理,DRAM控制设备也可以采用页关闭的静态控制策略,即每次读写操作完都会进行预充电操作关闭当前行。页关闭的静态策略适用于数据相关性比较差的DRAM寻址应用场合。但是如果下一次读写操作是对相同存储块(Bank)的相同行进行,此时称为页快速命中(Page Fast Hit)。这时因为采用页关闭的静态策略,需要重现发出行地址、列地址。静态的控制策略与DRAM存储器数据存取的应用场合有密切的关系,但可能存在静态的控制策略与DRAM寻址冲突,从而增加处理器访存的延迟。为了降低访问DRAM芯片的时间,一些DRAM控制设备采用预测技术动态的调整策略,但是这又会增加 DRAM控制设备的复杂度,并且预测不正确也会增加访存的时间,降低DRAM总线吞吐率。
传统多核共享的DRAM控制设备通过片上互联总线结构与片上多核处理器相连接,比如AMBA总线互联结构。在一个并行实时处理系统,一般采用分离总线的数据传输方式。传统的AMBA总线将一个总线传输周期分为2个子周期地址周期和数据周期。当片上某个处理器需要对从设备的DRAM控制设备进行读访问时,首先向总线仲裁单元发出请求信号,等到总线仲裁授权后,处理器取得DRAM控制设备的访问权,进入地址周期,并将控制信号、DRAM地址通过总线发送给DRAM控制设备,当DRAM控制设备认为该操作需要长时间延迟,则向总线仲裁申请分离传输,上述处理器让出总线使用权,则其他处理器可以获得总线的使用权。当DRAM控制设备经寻址和读出过程准备好处理器需要的数据时,向仲裁申请数据传输,在上述主设备处理器获得总线使用权后,重新发起总线传输,通过新的地址周期和数据周期,处理器从数据总线上取回从DRAM读出的数据。分离的总线传输能够在从设备需要长时间操作时,授权其他主设备占有总线的请求。相比传统的总线传输,分离总线传输可以使总线使用权在不同主设备间快速切换,从而能减少总线的延迟。但是传统共享总线的分离传输过程复杂并且存在时间损耗,从设备需要重新向总线仲裁申请数据传输,然后需要一直等到主设备获得总线使用权后,通过新的总线传输周期才能完成一次数据传输。这会增加主设备处理器访问从设备DRAM存储器的延迟,降低数据吞吐率,限制并行处理的性能。传统的多核共享存储控制设备通过共享总线同片上多核处理器相连接,虽然采用分离总线数据传输机制,并且内部采用静态策略或者动态预测技术,但是都存在数据吞吐率低和访存的延迟大的缺点,因此在并行实时处理的多核共享系统中需要一种新型的DRAM 控制设备解决这些问题。

发明内容
为了克服现有技术上述缺陷,本发明提供一种基于指令预取的多核共享存储器控制设备。该存储器控制器具有和动态随机存储器完全一致的接口规范,兼容同步动态随机存储器(SDRAM)、双倍速同步动态随机存储器(DDR)、第二代双倍速率同步动态随机存储器 (DDR2)、第三代双倍速率同步动态随机存储器(DDR!3)通用存储器装置的接口和传输规范。本发明的目的通过以下技术方案实现一种基于指令预取的多核共享存储器控制设备,其中包括访存指令队列缓冲模块、指令解析和地址译码模块、数据读写控制模块、存储器控制模块、存储器接口模块。存储接口模块用来和外部存储器总线交互数据,同时与控制设备内部的存储器控制模块连接。访存指令缓冲模块,用于存放片上多核处理器发出的访存指令,所述指令包括命令类型、地址信息和对应的控制信息;指令解析和地址译码模块,用于对访存指令进行命令解析和地址译码,并将译码得到的命令类型、存储器地址和数据传输个数输入到存储控制模块,同时将该指令的其他控制信息,包括处理器ID号、处理器内部读写寄存器地址传递到数据读写控制模块;存储控制模块,根据指令解析和地址译码模块译码得到的命令类型、存储器地址和数据传输个数,控制存储接口模块和数据读写控制模块完成数据在存储器和处理器间的正确传递;数据读写控制模块,接收来自存储控制模块、指令解析与地址译码模块的控制信号和从存储器读出的数据,主动发起数据的写入或读取操作,控制数据在存储器和片上多核处理器之间进行传输;存储接口模块,用于按照存储器的标准时序,控制数据从存储控制模块正确写入存储器,或者将数据从存储器正确读出,并写入存储控制模块。所述的控制设备,其中,所述访存指令缓冲模块可以在指令预取标志信号的作用下,提前取出下一条指令,并将所述的下一条指令输入指令解析和地址译码模块进行预译码。所述的控制设备,其中,所述存储控制模块包括读写控制逻辑负责控制信息寄存器更新和控制指令预取标志信号发送,并根据标志寄存器的信息动态选择存储器页打开还是页关闭策略;控制信息寄存器用于保存当前指令的控制信息,包括命令类型、存储器地址和数据传输个数;地址比较器所述地址比较器负责比较当前指令执行的存储器的地址和预取的下一条指令存储器地址的关系,并产生标志地址关系的控制信息;所述标志寄存器则根据上述控制信息存储当前执行指令的存储器地址和预取下一条指令存储器地址关系的具体数值。所述的控制设备,其中,所述指令预取包括以下步骤步骤500 在指令预取标志信号的作用下,提前从访存指令缓冲模块预取指令,并经过指令解析和地址译码模块进行预译码,接着跳转到步骤502 ;步骤502 将预取指令进行译码后所得的存储器地址信息与当前指令存储器地址比较,接着跳转到步骤;步骤504 判断预取指令与当前指令指向的存储器地址是不是相同的Bank的同一行;如果是,则跳转到步骤506,如果不是,则跳转到步骤508 ;步骤506 置标志寄存器低两位的值为0x1,标志寄存器406的高两位的值保持不变。接着跳转到步骤514;步骤508 判断预取指令与当前指令指向的存储器地址是不是不同的Bank地址, 如果是则跳转到步骤510,如果不是则跳转到步骤512 ;步骤510 置标志寄存器低两位的值为0x2,并且将当前指令412的存储块地址 BankADDR写入标志寄存器的高两位,接着跳转到步骤512 ;步骤512 置标志寄存器低两位清零,标志寄存器高两位的值保持不变,接着跳转到步骤514 ;步骤514 读写控制逻辑根据标志寄存器低两位值来控制存储控制设备内部的状态跳转,并且在预取指令410开始被存储控制设备执行时,用预取指令410的控制信息更新控制信息寄存器402。所述的控制设备,其中,所述数据读写控制模块包括内部总线接口 用于接受来自存储控制模块和指令解析和地址译码模块传递过来的数据和控制信息,包含处理器ID号、指定处理器内部寄存器地址和数据总线请求;数据读写总线的地址数据寄存器用于保存当前访存指令数据、数据总线请求和处理器内部寄存器地址;
处理器ID号寄存器用来保持当前访存指令处理器ID号。所述的控制设备,其中,所述数据读写控制模块控制数据在存储器和片上多核处理器之间进行传输包括以下步骤步骤1 根据处理器ID号选通对应处理器的数据通路;步骤2 对于多核处理器向存储器写数据时,在选通的数据通路上发送数据总线写请求和处理器内部寄存器地址;对于多核处理器要从存储器读取数据时,在选通的数据通路上发送数据、数据总线读请求和处理器内部寄存器地址;步骤3 处理器响应数据读写总线请求信号,将数据从处理器内部的寄存器读出并放入数据写总线,或者将数据读总线的数据写入处理器内部寄存器;步骤4:读写控制模块接受来自数据写总线的数据,或者在数据读总线的数据写入处理器内部寄存器后,通知上述处理器数据已经“数据准备好”。所述的控制设备,其中,所述存储器为SDRAM或者DDR。本发明的实施例具有以下有益效果,通过上述方案,存储控制模块通过指令预取动态选择页打开还是页关闭策略,减少因使用静态策略或者动态预测技术所带来的时间损耗,提高并行实时处理多核系统的性能。另一方面,数据读写控制模块能够发起数据读写总线的操作,采用更为简单直接的方式同片上多核处理器进行通信,降低片上数据总线的延迟,提高数据总线吞吐量。所以本发明的实施例的DRAM控制器能够降低处理器访存带来的延迟,并提高数据的传输效率,更加能够适应处理器并行工作时所需的高性能存储总线吞吐率要求。


通过结合附图对本发明的实施例进行详细的描述,本发明的上述和其他的目的、 特征、优点将会变得更加清楚,其中图1是传统多核共享存储控制设备的示意图;图2是基于指令预取的多核共享存储器控制设备的示意图;图3是基于数据读写总线的片上多核系统互连的示意图;图4是本发明实施例的DRAM存储控制设备指令预取结构图;图5是本发明实施例的DRAM存储控制设备指令预取实现流程图;图6是本发明实施例的DRAM存储控制设备读写状态跳转流程图;图7a是本发明实施例的DRAM存储控制设备相比采用页关闭策略传统DRAM存储控制器减少访问延迟的时序图;图7b是本发明实施例的DRAM存储控制设备相比不采用Bank交错技术的传统 DRAM控制器减少访问延迟的时序图;图7c是本发明实施例的DRAM存储控制设备相比采用页打开策略传统DRAM控制器减少访问延迟的时序图;图8是本发明实施例的DRAM存储控制设备的数据读写控制模块结构图;图9是本发明实施例的DRAM存储控制设备的数据读总线操作接口协议流程图;图10是本发明实施例的DRAM存储控制设备的数据写总线操作接口协议流程具体实施例方式下面将参照附图来描述根据本发明实施例的存储器控制设备。在附图中,相同的参考标号自始至终表示相同的元件。应当理解这里描述的实施例仅仅是说明性的,而不应当被解释为限制本发明的范围。实施例1如图2所示是基于指令预取的多核共享存储控制设备的示意图。在本发明实施例中,存储访问命令与读写数据使用了不同的总线结构分别进行处理,这样可以最大限度的实现存储器访问的并行执行。命令总线304是一个单向总线,只负责传递从多个处理器发送来的存储器访存指令。在本发明实施例中,访存指令的指令格式包括本次指令的指令类型、处理器ID号、所访问的存储器的地址和处理器内部寄存器地址以及需要传递的数据个数。为了提高数据的吞吐率性能,数据总线在本发明实施例中分成了数据读总线302 和数据写总线300,分别用来完成数据读操作和写操作。由于采用的是多处理器共享结构, 在一些情况下每个处理器还可能具有多个硬件线程,因此存储控制设备内部应具有访存指令缓冲模块202,确保所有处理器发出的存储指令被缓存到队列中。命令总线304能够根据不同类型存储器指令进行优先级仲裁,使存储器指令执行的效率达到最高。在两个数据总线上,存储控制设备通过数据读写控制模块200,保证共享的存储控制设备所处理的数据与指定的处理器或者处理器线程能够一一对应。数据读写控制模块200还负责通知处理器本次存储操作已完成。图3所示给出了多处理器与共享的存储器控制器互连结构。数据读写总线302、300与命令总线304以CrossBar互连总线结构的方式相连接,能够有效降低片上互连总线的交易延迟。当多线程处理器306 310发出存储器访问指令后,可以继续其它线程的功能,数据的写入或读取操作均由存储控制设备中的数据读写控制模块200主动发起,不必占用处理器306 310的指令执行周期。实施例2本实施例的存储控制设备指令预取实现方式如图4所示。所述实现方式涉及存储控制模块206、访存指令缓冲模块202和指令解析与地址译码模块204。存储控制模块206包括读写控制逻辑400、控制信息寄存器402、地址比较器404 和标志寄存器406。读写控制逻辑400负责控制存储控制设备内部状态的跳转,实现数据正确读写,并决定在何时发送指令预取标志信号408。读写控制逻辑400根据控制信息寄存器402保存的当前指令412的信息和标志寄存器406的内容决定下一状态。控制信息寄存器402负责保存当前指令412的控制信息,包括访存指令的命令类型、存储器地址和数据传输个数。预取的下一条指令410的信息需要在读写控制逻辑400跳转到执行下一条指令时更新控制信息寄存器402。地址比较器404负责比较当前指令412执行的存储器地址和预取指令410的存储器地址之间的关系。存储器地址包括存储块地址Bank ADDR、行地址Row ADDR和列地址Column ADDR,地址比较器404只比较当前指令412和预取指令410的存储块地址Bank ADDR和行地址Row ADDR,并将当前指令412和预取指令410的存储器地址相等或不相等的关系信息存储在标志寄存器406中。标志寄存器406负责存储当前指令412 和预取指令410的存储器地址相等或不相等的关系信息,并将所述地址关系信息发送到读写控制逻辑400。本实施例中,标志寄存器406位宽为4bit,最低位为高电平代表当前指令412和预取的下一条指令410的地址指向的是同一个存储块地址Bank ADDR和同一个行地址Row ADDR ;最低位为低时则代表情况相反,即下一条指令的地址与当前的执行指令不是指向同一个存储块地址Bank ADDR和同一个行地址Row ADDR ;第二位为高电平时,则代表当前指令412地址和预取指令410地址指向的是不同的存储块地址Bank ADDR,如果第二位是低电平则表示当前指令地址和预取指令地址不是指向不同的存储块地址Bank ADDR ;标志寄存器的第三位和第四位表示是当前指令412的存储块地址Bank。上述存储器控制结构与寄存器定义用来实现存储器访存指令的预取操作。本发明实施例的存储控制设备指令预取操作的具体实现流程如图5所示。包括步骤500 在指令预取标志信号408的作用下,提前从访存指令缓冲模块202预取指令,并经过指令解析和地址译码模块204进行预译码。接着跳转到步骤502 ;步骤502 将预取指令410进行译码后所得的存储器地址信息与当前指令412存储器地址比较,接着跳转到步骤504 ;步骤504:判断预取指令410与当前指令412指向的存储器地址是不是相同的 Bank的同一行;如果是,则跳转到步骤506,如果不是,则跳转到步骤508 ;步骤506 置标志寄存器406低两位的值为0x1,标志寄存器406的高两位的值保持不变。接着跳转到步骤514;步骤508:判断预取指令410与当前指令412指向的存储器地址是不是不同的 Bank地址。如果是则跳转到步骤510,如果不是则跳转到步骤512 ;步骤510 置标志寄存器406低两位的值为0x2,并且将当前指令412的存储块地址Bank ADDR写入标志寄存器的高两位。接着跳转到步骤512 ;步骤512 置标志寄存器406低两位清零,标志寄存器406高两位的值保持不变。 接着跳转到步骤514;步骤514 位于存储控制模块206内的读写控制逻辑400根据标志寄存器406低两位值来控制存储控制设备内部的状态跳转。并且在预取指令410开始被存储控制设备执行时,用预取指令410的控制信息更新控制信息寄存器402。在本发明实施例中,读写控制逻辑400在当前指令412运行的列选通状态发出指令预取标志信号,提前从访存指令缓冲模块202取出下一条指令。接着跳转到步骤500,开始下一次的指令预取的流程。如图6所示的是读写控制逻辑400根据标志寄存器406的内容控制存储器读写的流程图。包括步骤600 当目前没有指令需要访问存储器时,读写控制逻辑400不发任何有效的命令,存储器进入空闲状态。如果有新的访存指令需要被执行,那么跳转到步骤602 ;步骤602 读写控制逻辑400发行选通指令,激活当前指令412对应的存储器行地址。接着跳转到步骤604;步骤604 读写控制逻辑400经过tRCD(见图7)行选通的延迟,跳转到步骤606, 在此期间,读写控制逻辑不发任何有效的命令;步骤606 读写控制逻辑400发列选通指令,选通当前指令412对应的存储器列地址。接着跳转到步骤608;步骤608 读写控制逻辑400判断标志寄存器406低两位的值是不是0x2。如果是,则跳转到步骤610,如果不是,则跳转到步骤612 ;
步骤610 读写控制逻辑400根据标志寄存器406高两位的值,发预充电指令关闭上次指令操作行。接着跳转到步骤612;步骤612 读写控制逻辑400在列选通时发送指令预取标志信号408,并经过 tDELAY延迟后,标志寄存器406的值得到更新,接着跳转步骤614 ;步骤614 读写控制逻辑400判断标志寄存器406低两位值是不是0x1,如果是跳转到步骤606,选通下条指令对应的存储器列地址;如果不是,跳转到步骤616 ;步骤616 读写控制逻辑400判断标志寄存器406低两位值是不是0x2,如果是跳转到步骤602,选通下条指令对应的存储器行地址;如果不是,跳转到步骤618 ;步骤618 读写控制逻辑400发预充电命令,关闭当前指令操作行,接着跳转到步骤 620 ;步骤620 读写控制逻辑400经过tRP延迟,接着跳转到步骤602,选通下条指令对应的存储器行地址;基于指令预取的存储控制设备可以有效的减少和隐藏访存延迟,提高DRAM总线的带宽利用率。如图6所示,读写控制逻辑400根据标志寄存器406的值跳转到不同的状态,控制存储器的读写。如果标志寄存器406的低两位的值是0x1,则说明下一条指令是指向同一个存储体Bank的同一行。当前指令结束后,读写控制逻辑400不进入预充电的状态, 对当前指令的操作行采用页打开策略,减少下次读写操作的访存延迟。如果标志寄存器406 低两位的值是0x2,则说明下一条指令的操作是指向不同的存储体Bank。这时将动态的转到Bank交错处理步骤,从而隐藏不同Bank的预充电延迟。即当前指令在执行的同时,读写控制逻辑400选通下一条指令所对应的行列地址,当前指令结束数据传输时,下一条指令紧接着传输数据。标志寄存器406的高两位负责保持上条指令的存储体地址,在当前指令传输数据的同时,对上条指令操作行进行预充电关闭。所以对上条指令操作行采用页关闭策略来完成数据读写操作。如果标志寄存器406低两位值为0x0,则说明下一条指令地址是指向同一个存储体Bank的不同行。当前指令结束后,读写控制逻辑400进入预充电状态, 存储控制设备采用页关闭的策略,当前指令关闭当前指令操作行。若标志寄存器406低两位是0x1,那么下次对DRAM存储器的读写操作是页快速命中(Page fast hit),本发明实施例DRAM存储控制设备采用页打开的策略,当前指令操作完成后,对所述操作行不进行预充电关闭,而继续打开所述操作行。与采用页关闭策略的传统 DRAM控制设备相比,基于指令预取的存储控制设备能够减少访存延迟。图7a表示的是本发明存储控制设备采用页打开策略减少访存延迟的时序图。假设相邻两条访存指令是读存储器操作,并且地址是指向同一个存储体的相同行a,第一条指令的列地址是m,而后一条指令的列地址是m+4。由于采用页打开的策略,本发明存储控制设备不需要进行预充电行a 和选通行a操作,那么比采用页关闭的传统DRAM控制设备节省tRP+tRCD时间。若标志寄存器406低两位是0x2,那么下次对DRAM的读写操作是页命中O^age hit),本发明实施例DRAM存储控制设备采用Bank交错技术隐藏预充电的延迟。图7b表示的是采用Bank交错技术隐藏预充电延迟的时序图。假定相邻两条访存指令是读存储器操作,第一条指令是指向第一块存储体(Bank 0)的第a行第m列,第二条指令是指向第二块存储体(Bank 1)的第b行第η列。传统DRAM控制器若不采用Bank交错的技术,那么对 BankO和Bankl的访存是串行的,关闭BankO的第a行后才开启Bankl的第b行。基于指令预取的存储控制设备通过比较相邻两条指令的地址,得知下一条指令是对Bankl操作,那么在BankO传输数据时,同时选通Bankl的行列地址。BankO的数据传输完成时,Bankl的数据也开始出现在数据线上,同样在Bankl第b行第η列传输数据时,对BankO第a行进行预充电操作。所以基于指令预取的存储控制设备比不采用Bank交错技术的传统存储设备能够节省tRP+tRCD时间。若传统DRAM控制设备采用Bank交错技术,即默认相邻两次访存操作是页命中(Page hit)。上述传统DRAM控制设备一般选择页关闭的策略,如果相邻两次访存操作是页命中(Page hit),那么采用Bank交错技术隐藏预充电时间,减少访存的时间。但是如果相邻两次访存操作是页快速命中(Pagefast hit),那么会增加访存时间,如图7a所示。所以基于指令预取的存储控制设备比采用Bank交错技术的传统DRAM控制设备在相邻两次操作是页快速命中(Page fast hit)时减少tRP+tRCD时间。若标志寄存器406低两位是0x0,那么下次对DRAM的读写操作是页冲突 (PageConfict),本发明实施例DRAM存储控制设备采用页关闭策略,当前指令操作完成后, 对所示操作行进行预充电关闭。与采用页打开策略的传统DRAM控制设备相比,基于指令预取的存储控制设备能够减少访存延迟。时序对比如图7c所示。假定相邻两条访存指令是读存储器操作,并且指向同一个存储体地址,但是第一条指令指向行a,而第二条指令指向行 b。采用页打开策略的传统DRAM控制设备在每次指令操作完成后,都不会对存储器操作行进行预充电关闭,当发生页冲突(PageConfict)时,首先需要关闭上条指令所打开的存储器的行a,然后才能激活当前指令操作行b,那么当前指令访存时间是tRP+tRCD+tCL。基于指令预取的存储控制设备因为采用的是页关闭的策略,当前指令的访存时间是tRCD+tCL, 节约了 tRP时间。实施例3本发明实施例的DRAM存储控制设备中具备数据读写控制模块200。数据读写控制模块200实现方式如图8所示。数据读写控制模块200包括内部总线接口 812,接收来自存储控制模块206和指令解析与地址译码模块204的控制信号和从DRAM存储器110读出的数据,所述控制信号包括访存指令的类型、处理器ID号、指定多线程处理器内部寄存器地址和数据总线请求信号;数据读总线地址数据寄存器806 负责保存数据读总线上指定多线程处理器寄存器的地址、数据读总线请求信号和数据读总线数据;数据写总线地址寄存器808 负责保存数据写总线上的指定多线程处理器寄存器地址和数据写总线请求信号;数据写总线数据寄存器810 负责保存数据拉总线数据;数据读总线ID寄存器802 负责保存数据读总线上指定多线程处理器ID号;数据写总线ID寄存器804 负责保存数据写总线上指定多线程处理器ID号;数据读写控制模块200的主要功能是要能够及时的将数据在存储器和指定多线程处理器之间进行传输。所述模块负责发起数据总线的读写操作,并分别提供独立的数据读写总线。一方面,数据读写控制模块200通过写总线将待写入数据从指定多线程处理器的内部寄存器“拉入”数据总线,并将数据传递到存储控制模块206。另一方面,数据读写控制模块200还通过读总线将从存储器读出的数据“推到”数据总线上, 并在数据读写控制模块200的控制下写入指定多线程处理器的内部寄存器。数据通道的操作方法如下面所描述。在多核处理器中一个指定处理器的指定硬件线程要向存储器写数据时,根据访存指令类型和处理器ID号选通数据读写控制模块200的写数据通道,准备数据的写入。数据写总线300接口协议按照如图9所示的流程。首先根据处理器ID号选通指定的处理器及其线程号,然后在向指定的线程发送数据写总线请求信号和处理器的内部寄存器地址。请求信号维持的周期数同所读数据的个数对应,处理器采样数据写总线请求信号和内部地址值,响应数据写总线请求信号,将指定寄存器地址内的数据发送到数据总线上,数据读写控制模块200将所述数据经过存储控制模块206缓冲后直接放置在存储器芯片的数据总线上。在多核处理器中一个指定处理器的指定硬件线程要从存储器读取数据时,选通数据读写控制模块200的读数据通道,准备数据的读出。数据读总线302接口协议按照如10 图流程所示。首先根据指定的处理器ID号选通指定的处理器线程及其线程号,并通过指定处理器内部寄存器的地址和数据读总线请求信号选通对应的读数据通路。然后将从存储器读出的数据被放入数据读总线上。其中的数据读总线请求信号维持的周期数与数据有效长度对应。最后数据读写控制模块200将数据读总线上的数据写入到处理器内部寄存器,并向处理器线程发送“数据准备好”信号,从而可以通知该处理器线程可以继续执行下去。本发明实施例的DRAM存储控制设备采用了分布式仲裁方式,分别对命令总线队列、数据读写总线300、302分别进行调度。由多个处理器线程发出的存储器访问指令在命令总线仲裁器的调度下通过指令预取策略最大限度的提高了存储器访问指令的执行效率; 同时利用读写控制逻辑400控制数据在片外存储器和多个处理器线程之间的传输,并利用 “指令完成”信号来通知处理器线程及时的对数据进行处理。该传输控制方式与传统共享总线传输方式相比,更加能够适应多线程处理器并行工作时所需要的高性能存储总线吞吐率需要。并且结构简单,能够降低总线延迟。以上所述对本发明的目的、技术方案进行了详细说明。所应理解的是,以上所述并不限制本发明的范围,凡在本发明的原则及技术基础之内所做的任何修改、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种基于指令预取的多核共享存储器控制设备,其特征在于,包括访存指令缓冲模块,用于存放片上多核处理器发出的访存指令,所述指令包括命令类型、地址信息和对应的控制信息;指令解析和地址译码模块,用于对访存指令进行命令解析和地址译码,并将译码得到的命令类型、存储器地址和数据传输个数输入到存储控制模块,同时将该指令的其他控制信息,包括处理器ID号、处理器内部读写寄存器地址传递到数据读写控制模块;存储控制模块,根据指令解析和地址译码模块译码得到的命令类型、存储器地址和数据传输个数,控制存储接口模块和数据读写控制模块完成数据在存储器和处理器间的正确传递;数据读写控制模块,接收来自存储控制模块、指令解析与地址译码模块的控制信号和从存储器读出的数据,主动发起数据的写入或读取操作,控制数据在存储器和片上多核处理器之间进行传输;存储接口模块,用于按照存储器的标准时序,控制数据从存储控制模块正确写入存储器,或者将数据从存储器正确读出,并写入存储控制模块。
2.根据权利要求1所述的控制设备,其特征在于,所述访存指令缓冲模块可以在指令预取标志信号的作用下,提前取出下一条指令,并将所述的下一条指令输入指令解析和地址译码模块进行预译码。
3.根据权利要求1所述的控制设备,其特征在于,所述存储控制模块包括读写控制逻辑负责控制信息寄存器更新和控制指令预取标志信号发送,并根据标志寄存器的信息动态选择存储器页打开还是页关闭策略;控制信息寄存器用于保存当前指令的控制信息,包括命令类型、存储器地址和数据传输个数;地址比较器所述地址比较器负责比较当前指令执行的存储器的地址和预取的下一条指令存储器地址的关系,并产生标志地址关系的控制信息;标志寄存器所述标志寄存器则根据上述控制信息存储当前执行指令的存储器地址和预取下一条指令存储器地址关系的具体数值。
4.根据权利要求3所述的控制设备,其特征在于,所述指令预取包括以下步骤步骤500 在指令预取标志信号的作用下,提前从访存指令缓冲模块预取指令,并经过指令解析和地址译码模块进行预译码,接着跳转到步骤502 ;步骤502 将预取指令进行译码后所得的存储器地址信息与当前指令存储器地址比较,接着跳转到步骤504;步骤504 判断预取指令与当前指令指向的存储器地址是不是相同的Bank的同一行; 如果是,则跳转到步骤506,如果不是,则跳转到步骤508 ;步骤506 置标志寄存器低两位的值为0x1,标志寄存器406的高两位的值保持不变。 接着跳转到步骤514;步骤508 判断预取指令与当前指令指向的存储器地址是不是不同的Bank地址,如果是则跳转到步骤510,如果不是则跳转到步骤512 ;步骤510 置标志寄存器低两位的值为0x2,并且将当前指令412的存储块地址 BankADDR写入标志寄存器的高两位,接着跳转到步骤512 ;步骤512 置标志寄存器低两位清零,标志寄存器高两位的值保持不变,接着跳转到步骤 514 ;步骤514 读写控制逻辑根据标志寄存器低两位值来控制存储控制设备内部的状态跳转,并且在预取指令410开始被存储控制设备执行时,用预取指令410的控制信息更新控制信息寄存器402。
5.根据权利要求1所述的控制设备,其特征在于,所述数据读写控制模块包括 内部总线接口 用于接受来自存储控制模块和指令解析和地址译码模块传递过来的数据和控制信息,包含处理器ID号、指定处理器内部寄存器地址和数据总线请求;数据读写总线的地址数据寄存器用于保存当前访存指令数据、数据总线请求和处理器内部寄存器地址;处理器ID号寄存器用来保持当前访存指令处理器ID号。
6.根据权利要求5所述的控制设备,其特征在于,所述的控制设备,其中,所述数据读写控制模块控制数据在存储器和片上多核处理器之间进行传输包括以下步骤步骤1 根据处理器ID号选通对应处理器的数据通路;步骤2 对于多核处理器向存储器写数据时,在选通的数据通路上发送数据总线写请求和处理器内部寄存器地址;对于多核处理器要从存储器读取数据时,在选通的数据通路上发送数据、数据总线读请求和处理器内部寄存器地址;步骤3 处理器响应数据读写总线请求信号,将数据从处理器内部的寄存器读出并放入数据写总线,或者将数据读总线的数据写入处理器内部寄存器;步骤4:读写控制模块接受来自数据写总线的数据,或者在数据读总线的数据写入处理器内部寄存器后,通知上述处理器数据已经“数据准备好”。
7.根据权利要求1至6任一所述的控制设备,其特征还在于,所述存储器为SDRAM或者DDR。
全文摘要
本发明公开了一种基于指令预取的多核共享存储器控制设备。包括访存指令缓冲模块、指令解析和地址译码模块、数据读写控制模块、存储器控制模块、存储器接口模块。其中数据读写控制模块控制数据在存储器和片上多核处理器之间进行传输。存储器控制模块产生指令预取标志信号,提前从访存指令缓冲模块取出下一条访存指令,并经过指令解析和地址译码模块进行预译码,根据预取指令的控制信息存储器控制模块动态的选择存储器的页开或页闭策略。本发明存储器控制设备能够降低处理器访存带来的延迟,并提高数据的传输效率,更加能够适应处理器并行工作时所需的高性能存储总线吞吐率要求。
文档编号G06F13/16GK102207916SQ20111014179
公开日2011年10月5日 申请日期2011年5月30日 优先权日2011年5月30日
发明者光青, 彭毓佳, 李康, 郝跃, 雷理 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1