具体实施方式
以下,参照附图,说明本公开的实施方式。
图1是示出一个实施方式的具备存储器控制电路1以及存储器系统2的处理器系统3的概略结构的框图。图1的处理器系统3具备多个处理器4、和内置存储器控制电路1的存储器系统2。此外,处理器系统3也可以具备单一的处理器4。
存储器系统2具有存储器控制电路1、DRAM5、以及MRAM6。DRAM5和MRAM6分别可用作主存储器7的一部分。DRAM5和MRAM6的存储器容量的比率是任意的。DRAM5和MRAM6的具体的种类、规格等没有限制。另外,DRAM5是易失性存储器的代表例,也可以使用DRAM5以外的易失性存储器。同样地,MRAM6是非易失性存储器的代表例,也可以使用MRAM6以外的非易失性存储器。
存储器控制电路1具备调停部11、页面切换次数计数部12、写入目的地选择部13、存取信息登记部14、分配部15、DRAM控制器16、MRAM控制器17、DRAM驱动部18、以及MRAM驱动部19。分配部15、DRAM控制器16、MRAM控制器17、DRAM驱动部18、以及MRAM驱动部19是写入控制部。
调停部11调停来自多个处理器4的存取请求,决定优先等级。调停部11具有暂时地储存来自多个处理器4的存取请求的队列21。队列21暂时地储存多个处理器4所发行了的包括存取命令、地址、以及数据的存取请求信息。队列21由例如寄存器构成。
页面切换次数计数部12针对每个页面,对在由处理器4执行写入请求时产生的页面的切换次数、即把页面打开或者关闭的次数进行计数。在此,页面是指,处理器4为了存储器存取而指定的连续的地址群的存储器区域,是例如几k字节的存储器区域。存储器存取是以页面单位进行。为了存取某个页面的存储器区域,必须驱动对应的字线。将与页面对应的字线的驱动称为页面的打开。另外,将停止与页面对应的字线的驱动称为页面的关闭。在本说明书中,将把页面打开或者关闭的次数称为页面的切换次数。
写入目的地选择部13针对处理器4对主存储器7写入数据的单位即地址区域的每一个,将主存储器7内的DRAM5和MRAM6中的某一个选择为写入目的地。在此,地址区域是指,例如,通过执行处理器4的处理单位即线程而被存取的主存储器7的地址范围,通过一个线程存取的地址区域是确定的,如果线程不同,则通常是存取的地址区域也不同。有在通过一个线程存取的地址区域中,包括多个页面地址的情况。在该情况下,每当变更存取的页面时,需要进行页面的打开以及关闭处理。写入目的地选择部13针对各线程的每一个,选择在DRAM5和MRAM6中的哪一个中写入数据。
存取信息登记部14针对处理器4进行了写入请求的各地址区域的每一个,将作为写入目的地的易失性存储器或者非易失性存储器的选择信息、和切换了页面的次数信息对应起来登记。写入目的地选择部13如果从处理器4有新的写入请求,则根据在存取信息登记部14中登记了的信息,选择写入目的地,并且更新存取信息登记部14的登记信息。更详细而言,写入目的地选择部13在处理器发行了向在存取信息登记部14中未登记的写入目的地的写入请求的情况、或者存取信息登记部14内的次数信息被更新了的情况下,更新存取信息登记部14内的选择信息。
分配部15依照写入目的地选择部13所选择出的写入目的地,对DRAM控制器16和MRAM控制器17的一方,通知处理器4的写入请求。DRAM控制器16依照处理器4的写入请求,进行针对DRAM5的写入控制。DRAM驱动部18依照DRAM5的规格,控制对DRAM5发送地址、数据、控制信号的定时。MRAM控制器17依照处理器4的写入请求,进行针对MRAM6的写入控制。MRAM驱动部19依照MRAM6的规格,控制对MRAM6发送地址、数据、控制信号的定时。
图1的存储器控制电路1既可以与处理器4一起单片化,也可以是与处理器4独立的芯片。另外,图1的存储器控制电路1也可以与DRAM5和MRAM6的至少一方单片化。作为图1的存储器控制电路1的代表性的安装方式,有图2A、图2B、图2C这三种。当然,还可以考虑图2A、图2B、图2C以外的安装方式。
图2A示出了使多个处理器芯22、共有高速缓冲存储器23、存储器控制电路1、以及MRAM6成为单片的例子。通过单片化,能够缩短在处理器芯22、存储器控制电路1以及MRAM6之间收发的信号的传输延迟,噪声的影响也能够降低。此外,在图2A中,DRAM5安装于DRAM基板24。此外,图1的处理器4包括图2A的多个处理器芯22和共有高速缓存23。此外,既可以是多个处理器4共有一个共有高速缓存23,也可以是一个处理器4内的多个处理器芯22共有一个共有高速缓存23。
图2B示出了对多个处理器芯22和存储器控制电路1进行单片化,使DRAM5和MRAM6分别为不同的存储器基板24、25的例子。在图2B的情况下,能够个别地增减DRAM5和MRAM6的存储器容量,所以通用性变高。
图2C示出了与处理器芯22的芯片独立地,设置安装了DRAM5、MRAM6以及存储器控制电路1的芯片或者基板26的例子。MRAM6也可以与存储器控制电路1一体地形成。在处理器芯22的芯片内设置了混合存储器控制器27,该控制器在与安装了存储器控制电路1等的芯片或者基板之间,高速地收发数据、地址、控制信号。
图3是说明处理器4、主存储器7、DRAM5以及MRAM6的地址的图。处理器4发行假想地址。将处理器4所发行了的假想地址通过TLB(Translation Lookaside Buffer,快速重编址缓冲器)28或者页面表格(PT)29变换为物理地址。物理地址被用于存取主存储器7。写入目的地选择部13将物理地址变换为用于存取DRAM5或者MRAM6的地址。写入目的地选择部13变换了的地址被登记到存取信息登记部14。
如从图3可知,用于存取DRAM5的地址空间与用于存取MRAM6的地址空间独立地设置。针对每个地址区域,对DRAM5或者MRAM6分配用于存取主存储器7的地址空间。该分配动态地变更。即,写入目的地选择部13根据DRAM5和MRAM6的空闲容量、各地址区域的页面切换次数,对DRAM5或者MRAM6动态地分配各地址区域。
图4是示出存取信息登记部14的数据结构的图。图4的存取信息登记部14针对各线程的每一个,将各线程的物理地址、线程ID、页面切换次数、以及所选择的DRAM5或者MRAM6的地址(在本说明书中还称为混合地址)对应起来登记。页面切换次数是每隔一定时间被更新,所以从当前向过去追溯了的多个页面切换次数的信息被登记到存取信息登记部14中。
写入目的地选择部13如果有来自处理器4的写入请求,则参照存取信息登记部14,选择DRAM5和MRAM6中的某一个,决定写入地址。写入目的地选择部13如果在存取信息登记部14中登记了的页面切换次数中无大的变化,则依照在存取信息登记部14中登记了的DRAM5或者MRAM6的选择信息,选择DRAM5或者MRAM6。另一方面,在存取信息登记部14中登记了的页面切换次数中有大的变化的情况、或者在存取信息登记部14中未登记的地址区域的情况下,写入目的地选择部13根据页面切换次数,切换DRAM5或者MRAM6的选择。在该情况下,写入目的地选择部13更新存取信息登记部14的登记信息。
图5是示出处理器4进行了存取请求(例如写入请求)的情况下的处理器系统3的处理次序的一个例子的流程图。该流程图示出了处理器系统1具备针对各处理器4的每一个设置的个别高速缓冲存储器、在多个处理器4中共有的共有高速缓冲存储器23、TLB28、以及页面表格29的例子。个别高速缓冲存储器是存取优先级最高的存储器。共有高速缓冲存储器23是存取优先级比个别高速缓冲存储器低,但存取优先级比主存储器7高的存储器。共有高速缓冲存储器23还被称为末级(last level)高速缓冲存储器。共有高速缓冲存储器23具有比个别高速缓冲存储器大的存储器容量。TLB28和页面表格29具有将处理器4所发行的假想地址变换为物理地址的变换表格。TLB28的变换表格比页面表格29的变换表格小,但能够比页面表格29更高速地进行向物理地址的变换。在页面表格29中,登记了关于在主存储器7中储存的所有数据的地址变换信息,其中的一部分登记于TLB28中。
关于图5的流程图,在处理器4进行了存取请求时,开始处理。首先,判定进行了存取请求的地址是否命中个别高速缓冲存储器(步骤S1)。在命中了的情况下,针对个别高速缓冲存储器进行存取即可,所以结束图5的处理。
在步骤S1未命中个别高速缓冲存储器的情况下,存取TLB28,判定是否命中(步骤S2)。在未命中TLB28的情况下,存取页面表格29的条目信息(以下,页面表格条目或者PTE)(步骤S3)。
在步骤S2中命中了TLB28的情况、或者在步骤S3中存取了页面表格29的情况下,使用命中了TLB28的地址变换信息、或者存取页面表格29而取得了的地址变换信息,存取共有高速缓冲存储器23,判定是否命中(步骤S4)。在命中了共有高速缓冲存储器23的情况下,针对共有高速缓冲存储器23进行存取即可,所以结束图5的处理。
在步骤S4中未命中共有高速缓冲存储器23的情况下,将来自处理器4的存取请求储存到调停部11内的队列21(步骤S5)。接下来,写入目的地选择部13根据在存取信息登记部14中登记了的信息,选择DRAM5和MRAM6中的某一个,决定应存取的地址(步骤S6)。接下来,分配部15根据写入目的地选择部13所决定了的地址,判断应存取DRAM5、还是应存取MRAM6(步骤S7)。在判断为应存取DRAM5的情况下,经由DRAM控制器16和DRAM驱动部18存取DRAM5(步骤S8)。在存取DRAM5时打开了新的页面的情况下,对页面切换次数进行递增计数(步骤S9)。在步骤S7中判断为应存取MRAM6的情况下,经由MRAM控制器17和MRAM驱动部19存取MRAM6(步骤S10)。在存取MRAM6时打开了新的页面的情况下,对页面切换次数进行递增计数(步骤S11)。
图6以及图7是示出写入目的地选择部13进行的存取信息登记部14的更新处理的流程图。这些流程图示出了写入目的地选择部13实时地进行存取信息登记部14的更新处理的例子。
将图6以及图7的更新处理分成2个阶段来进行。如果有来自处理器4的存取请求(在该情况下为写入请求),则首先如图6所示,对MRAM6和DRAM5中的空闲容量多的一方,进行写入有写入请求的数据的处理。
接下来,如图7所示,进行将DRAM5内的数据中的页面切换次数多的数据与MRAM6内的页面切换次数少的数据调换的处理。以下,依次说明图6和图7的处理。
关于图6的流程图,在处理器4进行了新的存取请求时,开始处理。首先,判定在MRAM6中是否有空闲区域(步骤S21、第1空闲区域判定部)。如果判定为在MRAM6中有空闲区域,则判定在DRAM5中是否有空闲区域(步骤S22、第2空闲区域判定部)。如果判定为在DRAM5中有空闲区域,则选择DRAM5和MRAM6中的空闲区域多的一方,确保用于数据写入的区域(步骤S23)。接下来,取得确保的区域的地址(步骤S24)。取得了的地址被送到分配部15。分配部15通过地址确定是DRAM5还是MRAM6,在确定的一方中写入数据。
如果在步骤S22中判定为在DRAM5中无空闲区域,则在MRAM6中确保用于数据写入的区域(步骤S25),之后,进行上述步骤S24的处理。
如果在步骤S21中判定为在MRAM6中无空闲区域,则判定在DRAM5中是否有空闲区域(步骤S26)。如果判定为在DRAM5中有空闲区域,则在DRAM5中确保用于数据写入的区域(步骤S27),之后,进行上述步骤S24的处理。在步骤S26中判定为在DRAM5中无空闲区域的情况下,表示在DRAM5和MRAM6中的哪一个中都无空闲区域,返回无法确保区域的意思的差错(error)(步骤S28),结束处理。
通过图6的处理,在DRAM5和MRAM6中的某一个中写入了数据之后,开始图7的处理。首先,对处理器4执行的各线程的页面切换次数进行一定时间的计数(步骤S31)。接下来,将处理器4在一定时间的期间执行的各线程的页面切换次数按照降序排列(步骤S32、排序部)。接下来,按照在一定时间的期间在DRAM5中储存了的各线程的数据中的、页面切换次数从多到少的顺序,取得页面切换次数(步骤S33)。接下来,取得在MRAM6中储存了的各线程的数据中的、最小的页面切换次数(步骤S34)。
判定在步骤S33中取得了的页面切换次数是否多于在步骤S34中取得了的最小的页面切换次数(步骤S35)。在该判定为“否”的情况下,重复步骤S31以后的处理。在步骤S35的判定为“是”的情况下,判定可否在DRAM5和MRAM6中调换在步骤S33和S34中取得了的数据彼此(步骤S36)。如果判定为可调换,则在DRAM5和MRAM6中调换这些线程的数据彼此(步骤S37)。
接下来,判定调换了的线程数是否达到预定的阈值(步骤S38),如果尚未到达,则重复步骤S33以后的处理。如果在步骤S38中判定为达到,则重复步骤S31以后的处理。
在步骤S36中判定为不可调换的情况下,考虑为在MRAM6中无空闲容量。在该情况下,既可以仅送出MRAM6内的页面切换次数的最小值的线程、或者也可以将其他线程也合起来从MRAM6送出。由此,执行与DRAM5内的线程的调换处理(步骤S39),之后进行步骤S38以后的处理。
这样,在第1实施方式中,如果在处理器4执行各线程时针对主存储器7进行写入请求,则根据各线程的每一个的页面切换次数,选择DRAM5和MRAM6中的某一方,进行数据的写入。更具体而言,关于页面切换次数多的线程,在MRAM6中写入数据,关于页面切换次数少的线程,在DRAM5中写入数据。由此,在连续的地址区域中写入数据时,在DRAM5中写入数据,所以能够发挥DRAM5的特征而高速地进行数据写入。另外,在不连续的地址区域中写入数据时,在MRAM6中写入数据,所以即使频繁地发生页面的打开/关闭,也没有数据写入速度降低的担心。
另外,在第1实施方式中,如果从处理器4有写入请求,则首先对DRAM5和MRAM6中的、空闲容量多的一方写入数据,之后,在一定期间内,对在DRAM5和MRAM6中储存了的各线程的数据的页面切换次数进行计数,进行计数的数量多的线程的数据向MRAM6调换、计数的数量少的线程的数据向DRAM5调换的处理。由此,能够进行数据写入的实时处理,能够使向主存储器7的数据写入高速化。
(第2实施方式)
在第1实施方式中,针对处理器4执行的各线程的每一个,将页面切换次数登记到存取信息登记部14,根据登记了的页面切换次数,选择DRAM5和MRAM6中的某一个来写入了数据,但在第2实施方式中,针对处理器4新追加的页面表格条目的每一个,将页面切换次数登记到存取信息登记部14,根据登记了的页面切换次数,选择DRAM5和MRAM6中的某一个来写入数据。
在此,页面表格条目是指,用于存取页面表格29的条目信息。在页面表格29中,登记了关于在主存储器7中储存了的所有地址的地址变换信息。地址变换信息是指,表示处理器4所发行的假想地址、和用于存取主存储器7的物理地址的对应关系的信息。在处理器4针对主存储器7进行存取的情况下,检索页面表格29。在页面表格29内未登记应存取的地址的情况下,新生成页面表格条目。针对预先决定了的每个地址区域,设置了页面表格条目。该情况下的地址区域是指,通过将用于存取页面的假想地址群变换为物理地址群的地址变换信息存取的主存储器7内的一部分的存储区域,是例如将几k字节作为单位的连续的地址范围。写入目的地选择部13针对各页面表格条目的每一个,选择在DRAM5和MRAM6中的哪一个中写入数据。
第2实施方式的处理器系统3的块结构与图1相同。图8是示出第2实施方式的存取信息登记部14的数据结构的图。图8的存取信息登记部14针对各页面表格条目的每一个,将各页面表格条目的物理地址、页面表格条目的ID(PTE ID)、页面切换次数、以及所选择的DRAM5或者MRAM6的地址对应起来登记。
与第1实施方式同样地,写入目的地选择部13如果处理器4进行写入请求,则根据存取信息登记部14的登记信息,选择DRAM5和MRAM6中的某一个,进行数据写入。另外,写入目的地选择部13在各页面表格条目的页面切换次数中产生了变化的情况下,根据该页面切换次数,更新DRAM5和MRAM6的选择,将其更新信息登记到存取信息登记部14。
在第2实施方式中,与第1实施方式同样地,如果处理器4进行写入请求,则通过实时处理,进行选择DRAM5和MRAM6中的某一个来写入数据、并且将DRAM5和MRAM6的储存数据根据各页面表格条目的页面切换次数调换的处理。
在第2实施方式中,与第1实施方式同样地,首先通过与图6同样的处理,在DRAM5和MRAM6中的某一个空闲区域多的一方中,储存从处理器4有写入请求的数据。之后,在第2实施方式中,进行图9的处理。图9是示出第2实施方式的数据写入处理的一个例子的流程图。
首先,对通过处理器4存取的各页面表格条目的页面切换次数进行一定时间的计数(步骤S41)。接下来,将处理器4在一定时间的期间存取的各页面表格条目的页面切换次数按照降序排列(步骤S42)。接下来,按照在一定时间的期间在DRAM5中储存了的各页面表格条目的数据中的、页面切换次数从多到少的顺序,取得页面切换次数(步骤S43)。接下来,取得在MRAM6中储存了的各页面表格条目的数据中的、页面切换次数的最小值(步骤S44)。
判定在步骤S43中取得了的页面切换次数是否多于在步骤S44中取得了的页面切换次数(步骤S45)。在该判定为“否”的情况下,重复步骤S41以后的处理。在步骤S45的判定为“是”的情况下,判定可否将在步骤S43和S34中取得了的数据彼此在DRAM5和MRAM6中调换(步骤S46)。如果判定为可调换,则将这些页面表格条目的数据彼此在DRAM5和MRAM6中调换(步骤S47)。
接下来,判定调换了的数据数是否达到预定的阈值(步骤S48),如果尚未达到,则重复步骤S43以后的处理。如果在步骤S48中判定为达到,则重复步骤S41以后的处理。
在步骤S46中判定为不可调换的情况下,考虑为在MRAM6中无空闲容量。在该情况下,既可以仅送出MRAM6内的页面切换次数的最小值的页面表格条目、或者也可以将其他页面表格条目也从MRAM6送出。由此,执行与DRAM5内的页面表格条目的调换处理(步骤S47),之后进行步骤S46以后的处理。
这样,在第2实施方式中,如果处理器4进行写入请求,而追加新的页面表格条目,则根据追加了的页面表格条目的页面切换次数,选择DRAM5和MRAM6中的某一方,进行数据的写入。
更具体而言,关于页面切换次数多的页面表格条目,在MRAM6中写入数据,关于页面切换次数少的页面表格条目,在DRAM5中写入数据。由此,在连续的地址区域中写入数据时在DRAM5中写入数据,所以能够发挥DRAM5的特征而高速地进行数据写入。另外,在不连续的地址区域中写入数据时在MRAM6中写入数据,所以即使频繁地发生页面的打开/关闭,也无数据写入速度降低的担心。
另外,即使在第2实施方式中,也按照与第1实施方式同样的处理次序,进行数据写入,所以能够进行实时处理,能够使向主存储器7的数据写入高速化。
(第3实施方式)
在第3实施方式中,在处理器4执行线程时,并非根据页面切换次数实时地调换DRAM5和MRAM6内的数据,而仅关于在主存储器7中新写入的数据,根据页面切换次数,选择DRAM5和MRAM6中的某一个并写入。
在第3实施方式中,也通过与图6同样的处理(初始写入控制部的处理),在DRAM5和MRAM6中的某一个空闲区域多的一方中,储存从处理器4有写入请求的数据。之后,在第3实施方式中,进行图10的处理。
图10是示出第3实施方式的数据写入处理的一个例子的流程图。首先,针对处理器4执行的各线程的每一个,在一定时间的期间,对页面切换次数进行计数(步骤S51)。接下来,计算处理器4当前执行中的全部线程的页面切换次数的平均值(步骤S52)。
接下来,判定进行了写入请求的线程的页面切换次数是否大于在步骤S52中计算了的平均值(步骤S53、平均值检测部)。如果判定为大于平均值,则判定在MRAM6中是否有空闲区域(步骤S54)。如果判定为在MRAM6中有空闲区域,则决定用于将进行了写入请求的线程的数据写入到MRAM6的地址(步骤S55)。
如果在步骤S54中判定为在MRAM6中无空闲区域,则优先地选择在MRAM6中储存了的线程的数据中的、页面切换次数小的数据并从MRAM6移动到DRAM5来确保区域,决定用于对该区域写入进行了写入请求的线程的数据的地址(步骤S56)。
如果在步骤S53中,判定为进行了写入请求的线程的页面切换次数是在步骤S52中计算的平均值以下,则判定在DRAM5中是否有空闲区域(步骤S57)。如果判定为在DRAM5中有空闲区域,则决定用于将进行了写入请求的线程的数据写入到DRAM5的地址(步骤S58)。
如果在步骤S57中判定为在DRAM5中无空闲区域,则优先地选择在DRAM5中储存了的线程的数据中的、页面切换次数大的数据并从DRAM5移动到MRAM6来确保区域,决定用于对该区域写入进行了写入请求的线程的数据的地址(步骤S59)。
这样,在第3实施方式中,在主存储器7中进行数据写入时,比较执行中的全部线程的页面切换次数,关于页面切换次数比平均值小的线程,在DRAM5中写入数据,关于页面切换次数比平均值大的线程,在MRAM6中写入数据。由此,虽然无法实时地更新MRAM6和DRAM5内的数据,但在新写入数据时,根据页面切换次数,选择是DRAM5还是MRAM6而写入,所以能够以比第1及第2实施方式少的处理量,使向主存储器7的数据写入高速化。
(第4实施方式)
在第4实施方式中,在处理器4追加新的页面表格条目时,并非将DRAM5和MRAM6内的数据根据页面切换次数实时地调换,而仅关于在主存储器7中新写入的数据,根据页面切换次数,选择DRAM5和MRAM6中的某一个而写入。
在第4实施方式中,也通过与图6同样的处理,在DRAM5和MRAM6中的某一个空闲区域多的一方中,储存从处理器4有写入请求的数据。之后,在第4实施方式中,进行图11的处理。
图11是示出第4实施方式的数据写入处理的一个例子的流程图。首先,针对通过处理器4存取的各页面表格条目的每一个,在一定时间的期间,对页面切换次数进行计数(步骤S61)。接下来,计算处理器4当前执行中的全部页面表格条目的页面切换次数的平均值(步骤S62)。
接下来,判定进行了写入请求的页面表格条目的页面切换次数是否大于在步骤S62中计算的平均值(步骤S63)。如果判定为大于平均值,则判定在MRAM6中是否有空闲区域(步骤S64)。如果判定为在MRAM6中有空闲区域,则决定用于将进行了写入请求的页面表格条目的数据写入到MRAM6的地址(步骤S65)。
如果在步骤S64中判定为在MRAM6中无空闲区域,则优先地选择在MRAM6中储存了的页面表格条目的数据中的、页面切换次数小的数据并从MRAM6移动到DRAM5来确保区域,决定用于对该区域写入进行了写入请求的页面表格条目的数据的地址(步骤S66)。
如果在步骤S63中,判定为进行了写入请求的页面表格条目的页面切换次数是在步骤S62中计算的平均值以下,则判定在DRAM5中是否有空闲区域(步骤S67)。如果判定为在DRAM5中有空闲区域,则决定用于将进行了写入请求的页面表格条目的数据写入到DRAM5的地址(步骤S68)。
如果在步骤S67中判定为在DRAM5中无空闲区域,则优先地选择在DRAM5中储存了的页面表格条目的数据中的、页面切换次数大的数据并从DRAM5移动到MRAM6来确保区域,决定用于对该区域写入进行了写入请求的页面表格条目的数据的地址(步骤S69)。
这样,在第4实施方式中,在主存储器7中进行数据写入时,比较执行中的全部页面表格条目的页面切换次数,关于页面切换次数小于平均值的页面表格条目,在DRAM5中写入数据,关于页面切换次数大于平均值的页面表格条目,在MRAM6中写入数据。由此,虽然无法实时地更新MRAM6和DRAM5内的数据,但在新写入数据时,根据页面切换次数,选择是DRAM5还是MRAM6而写入,所以能够以比第1及第2实施方式更少的处理量,使向主存储器7的数据写入高速化。
(第5实施方式)
上述第1~第4实施方式的处理的至少一部分能够通过软件进行。例如,也可以操作系统(以下OS)进行第1~第4实施方式中的写入目的地选择部13、存取信息登记部14以及分配部15的处理。由此,即使是不具有写入目的地选择部13、存取信息登记部14以及分配部15的功能的存储器控制电路1,也能够通过OS的功能,实现实质上与图1同样的块结构的存储器控制电路1。因此,作为硬件,使用既存的存储器控制电路1,同时通过OS的功能,分开使用DRAM5和MRAM6,能够使向主存储器7的数据写入高速化。
另外,在通过软件将向主存储器7的写入数据分配给DRAM5和MRAM6的情况下,相比于用硬件进行分配处理的情况,自由度提高。
例如,在第1~第4实施方式中,根据一定时间的期间的处理器4的执行状况,进行分配处理,但在用软件进行分配处理的情况下,还能够在执行之前解析处理器4执行的预定的程序,事先进行分配处理。
图12是示出OS进行的分配处理的第1例的流程图,图13是示出OS进行的分配处理的第2例的流程图。在图12和图13中,在从处理器4有写入请求时,都并非实时地分配DRAM5和MRAM6内的数据,而仅将有写入请求的数据写入到DRAM5和MRAM6中的某一个。
在图12的第1例中,首先,事先由OS解析处理器4执行的预定的各线程的程序,事先掌握页面切换次数,针对各线程的每一个,决定写入到DRAM5和MRAM6中的哪一个(步骤S71)。接下来,如果处理器4执行各线程,来进行数据的写入请求(步骤S72),则在步骤S71中决定了的DRAM5或者MRAM6中写入数据(步骤S73)。
在图13的第2例中,首先,事先解析处理器4所存取的预定的各页面表格条目的程序,事先掌握页面切换次数,针对各页面表格条目的每一个,决定写入到DRAM5和MRAM6中的哪一个(步骤S81)。接下来,如果处理器4执行各页面表格条目,而进行数据的写入请求(步骤S82),则在步骤S81中决定了的DRAM5或者MRAM6中写入数据(步骤S83)。
这样,在第5实施方式中,在有从处理器4向主存储器7的写入请求时,通过软件,进行选择DRAM5和MRAM6中的某一个而写入的分配处理,所以不必大幅变更处理器系统3内的硬件,能够削减部件成本。另外,通过利用软件进行分配处理,易于给分配处理的具体的内容带来自由度。例如,能够在处理器4执行线程之前,事先解析处理器4执行的程序,针对各线程的每一个,决定写入到DRAM5和MRAM6中的哪一个。因此,能够迅速地进行分配处理。
此外,能够将上述实施方式总结为以下的技术方案。
技术方案1
一种存储器控制电路,具备:
写入目的地选择部,针对处理器在第1存储装置中写入数据的每个地址区域,将所述第1存储装置内的易失性存储器及非易失性存储器中的某一个选择为写入目的地;
写入控制部,进行在由所述写入目的地选择部选择的写入目的地中写入应写入的地址区域的数据的控制;以及
存取信息登记部,针对每个所述地址区域,将作为写入目的地的所述易失性存储器或者所述非易失性存储器的选择信息、和切换所述地址区域内的连续的地址群的页面的次数信息对应起来登记,
所述写入目的地选择部如果从所述处理器有新的写入请求,则根据在所述存取信息登记部中登记的信息,选择所述写入目的地。
技术方案2
根据技术方案1,所述写入目的地选择部如果从所述处理器有新的写入请求,则根据在所述存取信息登记部中登记的信息,选择所述写入目的地,并且更新所述存取信息登记部的登记信息。
技术方案3
根据技术方案2,所述写入目的地选择部在所述处理器发行了向在所述存取信息登记部中未登记的写入目的地的写入请求的情况、或者所述存取信息登记部内的所述次数信息被更新了的情况下,更新所述存取信息登记部内的所述选择信息。
技术方案4
根据技术方案1至3中的任意一个,所述地址区域是通过作为所述处理器执行的处理的线程来进行存取的所述第1存储装置内的一部分存储区域。
技术方案5
根据技术方案4,所述处理器执行的所述线程包括处理内容不同的多个线程,
所述存取信息登记部针对每个所述线程,将确定所述地址区域的物理地址信息、识别所述线程的识别信息、切换通过所述线程进行存取的所述页面的次数信息、以及作为写入目的地的所述易失性存储器或者所述非易失性存储器的选择信息对应起来登记。
技术方案6
根据技术方案1至3中的任意一个,所述地址区域是根据将用于存取所述页面的假想地址群变换为物理地址群的地址变换信息进行存取的所述第1存储装置内的一部分存储区域。
技术方案7
根据技术方案6,所述存取信息登记部针对每个所述地址变换信息,将确定所述地址区域的物理地址信息、识别所述线程的识别信息、切换根据所述地址变换信息进行存取的所述页面的次数信息、以及作为写入目的地的所述易失性存储器或者所述非易失性存储器的选择信息对应起来登记。
技术方案8
根据技术方案1至7中的任意一个,所述写入目的地选择部在存取优先等级比所述第1存储装置高的第2存储装置内不存在所述处理器所发行了的写入请求地址的情况下,将所述易失性存储器或者所述非易失性存储器选择为写入目的地。
技术方案9
根据技术方案1至8中的任意一个,具备:
第1空闲区域判定部,判定在所述非易失性存储器中是否有空闲区域;以及
第2空闲区域判定部,判定在所述易失性存储器中是否有空闲区域,
所述写入目的地选择部如果判定为在所述非易失性存储器以及所述易失性存储器中有空闲区域,则将空闲区域多的一方选择为所述写入目的地,如果判定为在所述非易失性存储器中有空闲区域、并且在所述易失性存储器中无空闲区域,则将所述非易失性存储器选择为所述写入目的地,如果判定为在所述易失性存储器中有空闲区域、并且在所述非易失性存储器中无空闲区域,则将所述易失性存储器选择为所述写入目的地。
技术方案10
根据技术方案9,所述写入目的地选择部根据在所述易失性存储器中存储的地址区域的所述次数信息,针对每个所述地址区域,决定是否使所述易失性存储器内的数据移动到所述非易失性存储器。
技术方案11
根据技术方案9或者10,具备:将在所述易失性存储器中存储的数据,针对每个所述地址区域,根据所述次数信息重新排列的排序部,
所述写入控制部根据由所述排序部重新排列的每个所述地址区域的数据,使所述页面的切换次数更多的所述地址区域的数据移动到所述非易失性存储器。
技术方案12
根据技术方案1至8中的任意一个,具备:在预定时间内,针对每个所述地址区域,对所述页面的切换次数进行计数,求出所述页面的切换次数的平均值的平均值检测部,
所述写入目的地选择部根据比较与从所述处理器有写入请求的数据对应的所述页面的切换次数与所述平均值而得到的结果,将所述易失性存储器或者所述非易失性存储器选择为所述写入目的地。
技术方案13
根据技术方案12,所述写入目的地选择部
在与从所述处理器有写入请求的数据对应的所述页面的切换次数大于所述平均值的情况下,如果在所述非易失性存储器中有空闲区域,则将所述非易失性存储器选择为所述写入目的地,如果在所述非易失性存储器中无空闲区域,则使所述非易失性存储器内的所述页面的切换次数更少的所述地址区域的数据移动到所述易失性存储器而将所述非易失性存储器选择为所述写入目的地,
在与从所述处理器有写入请求的数据对应的所述页面的切换次数是所述平均值以下的情况下,如果在所述易失性存储器中有空闲区域,则将所述易失性存储器选择为所述写入目的地,如果在所述易失性存储器中无空闲区域,则使所述易失性存储器内的所述页面的切换次数更多的所述地址区域的数据移动到所述非易失性存储器而将所述易失性存储器选择为所述写入目的地。
技术方案14
一种存储器系统,具备:
第1存储装置,具有非易失性存储器、和易失性存储器;
写入目的地选择部,针对处理器在所述第1存储装置中写入数据的每个地址区域,将所述第1存储装置内的所述易失性存储器及所述非易失性存储器中的某一个选择为写入目的地;
写入控制部,进行在由所述写入目的地选择部选择的写入目的地中写入应写入的地址区域的数据的控制;以及
存取信息登记部,针对每个所述地址区域,将作为写入目的地的所述易失性存储器或者所述非易失性存储器的选择信息、和切换所述地址区域内的连续的地址群的页面的次数信息对应起来登记,
所述写入目的地选择部如果从所述处理器有新的写入请求,则根据在所述存取信息登记部中登记的信息,选择所述写入目的地。
技术方案15
一种处理器系统,具备:
处理器;
第1存储装置,通过所述处理器存取,具有非易失性存储器、和易失性存储器;
写入目的地选择部,针对所述处理器在所述第1存储装置中写入数据的每个地址区域,将所述第1存储装置内的所述易失性存储器及所述非易失性存储器中的某一个选择为写入目的地;
写入控制部,进行在由所述写入目的地选择部选择的写入目的地中写入应写入的地址区域的数据的控制;以及
存取信息登记部,针对每个所述地址区域,将作为写入目的地的所述易失性存储器或者所述非易失性存储器的选择信息、和切换所述地址区域内的连续的地址群的页面的次数信息对应起来登记,
所述写入目的地选择部如果从所述处理器有新的写入请求,则根据在所述存取信息登记部中登记的信息,选择所述写入目的地。