专利名称:存取控制装置和存取方法
技术领域:
本发明涉及存取控制装置和存取方法,特别是涉及由CPU(中央处理单元)对存储器的存取进行控制的存取控制装置和存取方法。
图5是表明现有的信息处理装置的构成的框图,示出了与由CPU160或第1和第2处理电路500、510对DRAM(动态随机存取存储器)120进行存取有关的构成。
图5所示的信息处理装置,具备CPU160、存取口140、DRAM120、总线仲裁器130和第1及第2处理电路500、510。作成为把存取口140、DRAM120、总线仲裁器130、第1和第2处理电路制作在LSI110上边。
CPU160控制信息处理装置整体的动作。DRAM120是具有与写入、保持、读出信息处理装置的动作有关的信息的功能的存储器。总线仲裁器130根据由CPU160、第1和第2处理电路500、510对DRAM120进行存取的要求和优先度高的要求,允许进行存取。存取口140,具备用来写入从CPU160输出的与对DRAM120进行存取有关的信息的寄存器,并把存取要求向总线仲裁器130传送。第1和第2处理电路500、510,是任意个数的处理电路,并不限于2个。
图6是表明存取口140的构成的框图。存取口140,还具备DRAM字节地址指定用寄存器141、DRAM字数据读写用寄存器142、存取模式指定用寄存器143。存取模式指定用寄存器143,还具备DRAM地址可变指定位144、DRAM地址增加/减少指定位145。
DRAM字节地址指定用寄存器141,是用来写入CPU160所要存取的DRAM的地址的寄存器。DRAM字数据读写用寄存器142,保持已写入到DRAM字节地址指定用寄存器141中的地址的数据,或用来向已写入到DRAM字节地址指定用寄存器141中的地址进行写入的数据。存取模式指定用寄存器143,指定对DRAM120进行存取的方法。DRAM地址可变指定位144,用0或1指定是否使已写入到DRAM字节地址指定用寄存器141中的地址连续地变化。DRAM地址增加/减少指定位145,用0或1,指定是使已写入到DRAM字节地址指定用寄存器141中的地址连续地增加还是减少。
其次,用图5和图6对存取动作进行说明。
在CPU160要读出规定的地址,例如,第0x0500号地址的数据的情况下,就把0写入到DRAM地址可变指定位144中,把第0x0500号地址写入到DRAM地址指定用寄存器141中。此外,如果CPU160要对连续的地址,例如,对第0x0500号地址~第0x0508号地址进行存取,则把1写入到DRAM地址可变指定位144中,把1写入到DRAM地址增加/减少指定位145中,把第0x0500号地址写入到DRAM地址指定用寄存器141中。此外,如果CPU160要对象从第0x0508号地址~第0x0500号地址这样地在减少方向上连续的地址进行存取,则把1写入到DRAM地址可变指定位144中,把0写入到DRAM增加/减少指定位145中,把第0x0508号地址写入到DRAM地址指定用寄存器141中。
CPU160经由存取口140向总线仲裁器130提出存取要求。如果从第1和第2处理电路500、510也要求对DRAM120进行存取,则总线仲裁器130就对CPU160和第1、第2处理电路500、510的要求进行比较,允许优先度高的要求对地址进行存取。例如,在CPU160的要求优先度高的情况下,总线仲裁器130,就使CPU160对所要求的地址进行存取,所存取的地址的数据,就被读出到DRAM字数据读写用寄存器142中。如果CPU160要对DRAM字数据读写用寄存器142进行存取,就可以读出要求进行存取的地址的数据。这时,若把0写入到DRAM地址可变位144中,则读出结束。若把1写入到DRAM地址可变位144中,则已写入到DRAM地址指定用寄存器141中的地址,就根据DRAM地址增加/减少指定位145的指定,进行增值或减值,并经由总线仲裁器130,把增值或减值后的地址的数据,读出到DRAM字数据读写用寄存器142内。
此外,在CPU160要向DRAM120的规定的地址内写入数据的情况下,在向DRAM字节地址指定用寄存器141中写入了地址之后,CPU160就把要写入的数据写入到DRAM字数据读写用寄存器142中。若经由总线仲裁器130,对CPU160所要求的地址进行存取,则已写入到DRAM字数据读写用寄存器142中的数据,就被写入到被寻址的地址内。在CPU160要对连续的地址写入数据的情况下,只要用上边所说的DRAM地址可变位144和DRAM地址增加/减少指定位145,使DRAM字节地址指定用寄存器141的地址增值或减值,而且,在每一次地址增减时,就把所要写入的数据写入到DRAM字数据读写用寄存器142内,就可以向所希望的地址内连续地写入数据。
另一方面,在日本专利特开平2-253440号公报中,公开了一种用固件边切换边执行向多个寄存器文件中写入的任务的时分多路执行装置。
在CPU160通过存取口140对DRAM120进行存取时,当利用CPU多任务处理进行的多任务或中断处理,向DRAM120提出了存取要求时,就要中断迄今为止一直执行着的存取,与由CPU多任务处理进行的任务或中断处理相符地,改写保持在存取口140的各个寄存器中的信息。
但是,在上述那样的利用现有技术的对DRAM120的存取系统中,即便是重新进行被中断了的存取,也会存在着下述问题在途中改写了的地址或数据由于某种原因保留了下来,因而执行错误的处理。
例如,为了执行读出DRAM的第0x0500号地址的数据的任务,CPU160就把0写入到DRAM地址可变指定位144中,把0x0500写入到DRAM地址指定用寄存器141中。在这里,在CPU160读出DRAM字数据读写用寄存器142之前,如果命令进行中断处理,则CPU160就中断任务,把中断处理所要求的地址,例如0x0500写入到DRAM字节地址指定用寄存器141内,对DRAM字数据读写用寄存器142进行读出。当中断处理结束后,CPU160将执行所中断的任务,但是由于某种原因,有时候第0x0500号地址的数据,被置换成在中断处理中进行过读出的第0x0508号地址的数据。
此外,作为另外的例子,为了执行把所希望的数据写入到从DRAM120的第0x0500号地址开始,在每次增加2地增加的方向上连续的地址(0x0500、0x0502、0x0504、…)内的任务,CPU160分别把1写入到DRAM地址可变指定位144中,把1写入到DRAM地址增加/减少指定位145中,把0x0500写入到DRAM字节地址指定用寄存器141中,把所希望的数据写入到DRAM字数据读写用寄存器142中。如果在把已写入到DRAM字数据读写用寄存器142中的数据,写入到第0x0500号地址和第0x0502号地址内之后,命令进行中断处理,则CPU160就中断任务,把要求进行中断处理的地址0x0800,写入到DRAM字节地址指定用寄存器141中,读出已读出到DRAM字数据读写用寄存器142中的第0x0800号地址的数据。当CPU160再次执行任务时,即便是任务打算继续向第0x0504号地址写入数据,有时候也会由于某种原因,却向第0x0802号地址写入数据。
如上所述,为了避免继续执行被中断的任务时处理错误的地址或数据的问题,有在控制CPU160的固件一侧采取对策的手法。例如,为了执行某一任务,CPU160把0写入到DRAM地址可变指定位144中,把0x0500写入到DRAM地址指定用寄存器141中。在CPU160读出DRAM字数据读写用寄存器142之前,如果命令进行中断处理,则CPU160就把使DRAM地址指定用寄存器141、DRAM字数据读写用寄存器142、存取模式指定用寄存器143的各个信息退避到CPU160属下的存储器等内。其次,CPU160把要求中断处理的地址0x0800,写入到DRAM字节地址指定用寄存器141中,并从DRAM字数据读写用寄存器142中读出0x0800的数据。当CPU160继续执行被中断的任务时,就使退避到CPU160下的存储器等中的各个寄存器的值返回原来的寄存器内。
如上所述,当任务被CPU多任务处理中的多个任务或中断处理中断后,就使已写入到寄存器中的信息退避到CPU160属下的存储器内,在继续执行被中断的任务时,当使预先退避的信息返回到寄存器中后,在由CPU多任务处理执行的任务或中断处理中使用的地址或数据,就正常地执行任务而不残存在寄存器中。但是,在上述方法中,控制CPU160的固件的构造将会变得复杂起来,此外,当频繁地进行任务的切换时,使存取口140内的寄存器进行退避/返回的次数增加,存在着进一步增大CPU处理负担的问题。
此外,在特开平2-253440号公报所公开的时分多任务执行装置中,由于借助于固件自动地切换已写入到各个寄存器中的任务的执行,寄存器文件的使用状况也由CPU直接管理,故将增加CPU的负担。
本发明,就是为了解决上述问题而提出的,目的是提供具有在继续执行被CPU多任务处理中的多个任务或中断处理等中断了的任务时,不对错误的地址进行存取的存取控制装置,特别是以提供可以抑制CPU处理负担,不需要复杂的固件的记述的存取控制装置为目的。
为实现上述目的,本发明的存取控制装置,是一种由可以执行多个任务的时分处理和中断处理的CPU对预定的存储器的存取进行中继的存取控制装置,具备对每一次存取都存放来自CPU的关于存取的信息的多个存取口;对多个存取口的使用状况进行管理,并把使用状况通知CPU的管理部分。CPU根据由管理部分提供的使用状况,把与存取有关的信息写入到多个存取口之内的未使用的存取口内。
本发明的存取控制装置,由于具备多个存取口,故即便是用时分多路来执行任务,由于各个任务的信息会被写入到单独的存取口内,故可以得到这样的效果要进行存取的地址或时而读入时而写入的数据不会发生错误。此外,与虽然具备退避功能但存取口只有一个的现有例相比,由于任务的切换次数减少,故可以以良好的效率处理任务,可以得到减轻CPU处理负担的效果。
此外,本发明的存取控制装置,管理部分还可以具备退避区域,用来在多个存取口都已经使用时,使存放在该任意一个存取口内的信息退避,以便在启动别的任务或中断处理的情况下,把与该驱动后的别的任务或中断处理的存取要求有关的信息,存放到任意的一个存取口内;退避和返回装置,用来使已写入到上述任意一个存取口内的信息退避到退避区域内,使已退避到退避区域内的信息返回到存取口内。
因此,由于可以用小规模的电路控制存取口的使用状况和已写入到存取口内的信息的退避和返回,故可以得到这样的有利的效果固件的记述将变得单纯起来,可以减轻CPU的负担。此外,还可以得到这样的效果由于存储区管理部分还具备退避区域,故在所有的存取口都在使用之中的情况下,即便是有中断处理,也可以使正在使用中的一个存取口退避到退避区域内,执行中断处理。
此外,本发明的存取控制装置,存取口分别具备指定装置,用来指定CPU想要存取的存储器的地址;保持装置,用来暂时地保持从被地址指定装置指定的地址中读出来的数据,或用来读入到被地址指定装置指定的地址中去的数据;地址可变指定装置,用来指定是否使被地址指定装置指定的地址增值或减值。
此外,本发明的存取方法,是一种由可以执行多任务的时分处理和中断处理的CPU,通过具有多个存取口和管理部分的存取控制装置对规定的存储器进行存取的存取方法,管理部分识别多个存取口的使用状况,CPU把与存取有关的信息存放到被识别为未被管理部分使用的任意一个存取口内,管理部分,在执行向任意一个的存取口内进行存放时,作为任意一个存取口的使用状况,把正在使用之中这一情况记录到管理部分内,管理部分根据所存放的信息使之进行对存储器的存取,在存取结束之后,作为任意一个存取口的使用状况,管理部分把正在等待之中这一情况记录到管理部分内。
本发明的存取方法,由于具备多个存取口,故即便是用时分多路来执行任务,由于各个任务的信息会被写入到单独的存取口内,故也可以得到这样的效果要进行存取的地址或时而读入时而写入的数据不会发生错误。此外,与虽然具备退避功能但存取口只有一个的现有例比,由于任务的切换次数减少,故可以以良好的效率处理任务,可以得到减轻CPU处理负担的效果。
此外,本发明的存取方法,也可以是这样的存取方法当管理部分把多个存取口识别为全都正在使用之中时,就使正存放在任意一个存取口内的信息,退避到退避区域内,CPU就把与存取有关的信息存放到任意一个存取口内,管理部分就根据所存放到信息,对存储器进行存取,在结束了存取之后,管理部分就使已退避的信息返回任意一个存取口内,上述管理部分就继续执行以返回的信息为依据的存取。
因此,由于可以用小规模的电路控制存取口的使用状况和已写入到存取口内的信息的退避和返回,故可以得到这样的有利的效果固件的记述将变得单纯起来,可以减轻CPU的负担。此外,还可以得到这样的效果由于存储区管理部分还具备退避区域,故在所有的存取口都在使用之中的情况下,即便是有中断处理,也可以使正在使用中的一个存取口退避到退避区域内,执行中断处理。
图1的框图示出了本发明的实施例的存取控制装置的构成的概略。
图2的框图示出了第1、第2、第3存取口1、2、3的每者所共通的构成。
图3的框图示出了存储区管理部分5的构成。
图4的流程图概略地示出了本实施例在存取方法的动作。
图5的框图概略地示出了现有的存取控制装置的构成。
图6的框图示出了现有的存取口140的构成。
优选实施例以下,参照附图对本发明的实施例的存取控制装置进行说明。
图1的框图概略地示出了与本实施例的存取控制装置相应的电路,就是说,概略地示出了具备存取控制装置10的信息处理装置。信息处理装置具备CPU16、存取控制电路10、DRAM12、总线仲裁器13、第1和第2处理电路50和51。存取控制电路10、DRAM12、总线仲裁器13、第1和第2处理电路50和51都被制作在LSI11上边。存取控制电路10,还具备第1~第3存取口1、2、3和管理部分即存储区管理部分5。
CPU16控制信息处理装置全体的动作。DRAM12是具有写入、保持、读出与信息处理装置的动作有关的信息的功能的存储器。总线仲裁器13,当从CPU16与第1和第2处理电路50、51提出了对DRAM12进行存取的要求时,就允许优先度高的要求对地址进行存取。第1~第3存取口1、2、3,具备用来存放从CPU16对DRAM12进行存取所必须的信息的寄存器,并把存取要求传送给总线仲裁器13。存储区管理部分5,管理第1~第3存取口1、2、3的使用状况,并把使用状况通知CPU16。此外,还具备根据CPU16的指令,使已写入到第1存取口21内的信息进行退避的退避区域;和使信息退避到退避区域内,使退避的信息返回到存取口内的退避和返回装置。
图2的框图示出了对第1~第3存取口1、2、3的每一个存取口共用的构成。第1~第3存取口1、2、3,还具备DRAM地址指定用寄存器21、DRAM字数据读写用寄存器22、存取模式指定用寄存器23。存取模式指定用寄存器23,作为指定是否使被DRAM字节地址指定用寄存器21指定的地址增值或减值的地址可变指定装置,还具备DRAM地址可变指定位24和DRAM地址增加/减少指定位25。
DRAM字节地址指定用寄存器21是指定CPU16所要存取的DRAM地址的地址指定装置。DRAM字数据读写用寄存器22是一种保持装置,用来暂时地保持从已存放在DRAM字节地址指定用寄存器21中的地址中读出来的数据,或用来向已存放在DRAN字节地址指定用寄存器21中的地址写入到数据。存取模式指定用寄存器23,指定对DRAM12进行存取的方法。DRAM地址可变指定位24,用0或1指定是否使已写入到DRAM字节地址指定用寄存器21中的地址连续地变化。DRAM地址增加/减少指定位25,用0或1指定是使地址序号在增加的方向上变化还是使地址在序号向减少的方向变化。
例如,在CPU16要连续地对DRAM12的第0x0500~0x0508号地址进行存取的情况下,当把1写入到DRAM地址可变指定位24中,把1写入到DRAM地址增加/减少指定位25中,把0x0500写入到DRAM字节地址指定用寄存器21中时,就可以把第0x0500~0x0508号地址的数据读入到DRAM字数据读写用寄存器22中。此外,如果想要进行存取的地址是0x0508~0x0500,则把1写入到DRAM地址可变指定位24中,把0写入到DRAM地址增加/减少指定位25中。此外,如果要存取的地址是0x0508号地址,则把0写入到DRAM地址可变指定位24中,把0x0508写入到DRAM字节地址指定用寄存器21中。另外,也可以预先作成为使得可以用存取模式指定用寄存器23来指定连续数据的个数,或连续数据的最后一个数据的地址。增加或减少的值,是可以用DRAM地址增加/减少指定位25预先决定下来的数值。
图3的框图示出了存储区管理部分5的构成。存储区管理部分5,具备DRAM字节地址退避用寄存器26、DRAM字数据退避用寄存器27、存取模式退避用寄存器28和存储区管理用寄存器31。
DRAM字节地址退避用寄存器26,是暂时地存放第1存取口1的DRAM字节地址指定用寄存器21的值的区域,就是说,是一种寄存器。DRAM字数据退避用寄存器27,是暂时地存放第1存取口1的DRAM字数据读写用寄存器22的值的寄存器。存取模式退避用寄存器28,是暂时地存放第1存取口1的存取模式指定用寄存器23的值的寄存器,具备DRAM地址可变指定退避用位29和DRAM地址增加/减少指定退避用位30。存储区管理用寄存器31,管理3个存取口1、2、3的使用状况并把使用状况通知CPU16。
存储区管理部分31,还具备第1存取口使用状况标志(位)32、第2存取口使用状况标志33、第3存取口使用状况标志34和优先存取指定位35。例如,在第1存取口使用状况标志32为0时,就意味着第1存取口1正在等待之中,而第1存取口使用状况标志为1时,就意味着正在使用第1存取口。对于第2存取口使用状况标志33、第3存取口使用状况标志34,也是一样的。优先存取指定位35,指定位于第1存取口内的各个寄存器的信息的退避和返回。例如,当CPU16把1写入到优先存取指定位35中时,就使位于第1存取口1的DRAM字节地址指定用寄存器21内的信息,退避到DRAM字节地址退避用寄存器26中,使位于DRAM字数据读写用寄存器22内的信息,退避到DRAM字数据退避用寄存器27内,使位于存取模式指定用寄存器23内的信息,退避到存取模式退避用寄存器28内。此外,若CPU16把0写入到优先存取指定位35中,则位于DRAM字节地址退避用寄存器26内的信息,就返回到第1存取口1的DRAM字节地址指定用寄存器21内,位于DRAM字数据退避用寄存器27内的信息,就返回到DRAM字数据读写用寄存器22内,位于存取模式退避用寄存器28内的信息,就返回到存取模式指定用寄存器23内。
图4的流程图概略性地示出了本实施例的存取方法的动作。用图1和图4,对本实施例的存取方法进行说明。
当产生了任务后,CPU16就向存储区管理部分5询问存取口(1、2、3)的使用状况,识别是否是未使用的存取口(步骤S1)。
在有未使用的存取口的情况下,就向步骤S3前进,CPU16,把任务的存取信息存放到未使用的存取口内。这时,存储区管理部分5就使已变成为正在使用中的存取口使用状况标志(32、33或34)变成为正在使用中。接着,CPU16通过总线仲裁器13对DRAM12的所希望的地址进行存取(步骤S4)。
当存取动作结束后,存储区管理部分5,就是曾是正在使用中的存取口的使用状况标志变成为正在等待之中,释放存取口(步骤S5)。
另一方面,在步骤S1中未识别到未使用的存取口的情况下,就向步骤S10前进,使任意一个存取口(在图1中使第1存取口1)的信息,退避到存储区管理部分中去。
接着,CPU16所产生的任务的存取信息,存放到因信息不得不退避而空了出来的存取口内(步骤S11),执行对DRAM12的存取(步骤S12)。
当步骤12的存取结束后,在步骤S10不得不退避的信息,就返回到原来的存取口内(步骤S13),继续执行被迫退避的信息的存取(S14)。当继续执行的存取结束后,与步骤S5一样,释放存取口。
用图1、图2和图3,举出具体例进一步说明图4的动作。首先,控制CPU16的固件进行多任务处理,对用时分多路执行第1、第2、第3任务的状况下的对DRAM12进行存取时的例子进行说明。
假定第1任务,指示进行位于从DRAM12的第0x0400号地址开始,每次隔开一个地址,一直到第0x040E号地址为止的地址内的数据的读入,第2任务,指示进行向从DRAM12的第0x0800号地址开始,每次隔开一个地址,在减去方向上一直到第0x07F6号地址为止的地址内的数据的写入,第3任务,指示进行向DRAM12的第0x1000、0x1002、0x1004号地址内的数据写入。假定任务按照第1、第2、第3的顺序执行,3个存取口按照第1、第2、第3的顺序使用。此外在已向DRAM地址可变指定位24内写入了1的情况下,假定地址每次变化2个。
首先,第1任务读取存储区管理部分5的存储区管理用寄存器31,识别所有的存取口都是可以使用的。第1任务,采用把1写入到第1存取口使用状况标志32内的办法,记录第1存取口已变成为正在使用中的信息,其次分别把1写入到第1存取口1的DRAM地址可变指定位24内,和DRAM地址增加/减少指定位内,把所希望的地址的数据读出到DRAM字数据读写用寄存器22内,得到所希望的数据。在第1任务读取第0x0400号地址、第0x0402号地址、第0x0404号地址的数据时,当控制转移到第2任务时,第1任务就被暂时中断。
第2任务,读取存储区管理用寄存器31,把第2和第3存取口识别为是可以使用的。第2任务,在把1写入到第2存取口使用状况标志33中之后,当把1写入到第2存取口2的DRAM地址可变指定位24中,把0写入到DRAM地址增加/减少指定位25中,把0x0800写入到DRAM字节地址指定用寄存器21中,把数据读入到DRAM字数据读写用寄存器22中时,就把已写入到DRAM字数据读写用寄存器22中的数据写入到DRAM12的所希望的地址中去。在第2任务向第0x0800号地址和第0x07FE号地址写入数据时,若控制转移到第3任务,则第2任务将暂时被中断。
第3任务,读取存储区管理用寄存器31,把第3存取口识别为是可以使用的。第3任务,在把1写入到第3存取口使用状况标志34中之后,当把1写入到第3存取口3的DRAM地址可变指定位24中,把1写入到DRAM地址增加/减少指定位25中,把0x1000写入到DRAM字节地址指定用寄存器21中,把数据读入到DRAM字数据读写用寄存器22中时,就把已写入到DRAM字数据读写用寄存器22中的数据写入到DRAM12的所希望的地址中去。在向第0x1000号地址和第0x1002号地址写入数据时,若控制从第3任务转移到第1任务,则第3任务将暂时被中断。
第1任务,从第0x0406号地址开始继续进行读出,读取第0x0408号地址、第0x040A号地址、第0x040C号地址的数据,结束数据的读取。接着,采用把0写入到第1存取口使用状况标志32中的办法,把第1存取口已变成为正在等待的信息记录下来,释放第1存取口1。
其次,控制转移到第2任务,第2任务把剩下的数据,即,用来向第0x07FC号地址、第0x07FA号地址、第0x07F8号地址、第0x07F6号地址写入的数据,写入到第2存取口2的DRAM字数据读写用寄存器22中。当把已写入到DRAM字数据读写用寄存器22中的数据写入到DRAM12的所希望地址中后,结束由第2任务进行的数据的写入。接着,把0写入到第2存取口使用状况标志33中,释放第2存取口2。
其次,控制转移到第3任务,第3任务把剩下的数据,即,用来向第0x1004号地址写入的数据,写入到第2存取口2的DRAM字数据读写用寄存器22中。当把已写入到DRAM字数据读写用寄存器22中的数据写入到DRAM12的第0x1004号地址中后,结束由第3任务进行的数据的写入。接着,把0写入到第3存取口使用状况标志34中,释放第3存取口3。
其次,用图1、图2和图3,对在控制CPU16的固件进行多任务处理,用时分多路执行第1、第2、第3任务的状况下,在第1、第2、第3任务正分别使用第1、第2、第3存取口1、2、3的途中,启动中断处理D,企图对DRAM12进行存取的情况下的例子进行说明。
中断处理D,读取存储区管理用寄存器31,识别3个存取口全都正在使用,把1写入到优先存取指定位35中。接受优先存取指定位35的指定后,已写入到第1存取口1的各个寄存器21、22、23中的信息,分别退避到存储区管理部分5的对应的退避用寄存器26、27、28中。中断处理D,用已空了出来的第1存取口1,对DRAM12进行存取,当存取结束后,就把0写入到优先存取指定位35中。接受到优先存取指定位35的指定后,已退避到存储区管理部分5的各个退避用寄存器26、27、28中的信息,就分别返回到第1存取口1的对应的寄存器21、22、23中。
如上所述,倘采用本实施例,由于使用多个存取口,故即便是用时分多路执行任务,由于各个任务的信息已写入到单独的存取口内,所以可以得到这样的效果想要存取的地址或时而读入时而写入的数据不会发生错误。
此外,本实施例的存取控制装置,如上所述,作为存取控制电路10,虽然设于DRAM12的某一LSI11上边,但是存取控制装置10,如上所述,由于不需要复杂的构成,故可以用小规模的电路制作。
此外,存取控制电路10,由于直接管理CPU16对DRAM12的存取,故与用固件控制对DRAM的存取的特开平2-253440号公报的装置比较,固件的记述变得单纯,且可以减轻CPU处理的负担。
此外,由于有多个存取口,故与虽然具备退避功能但存取口只有一个的现有例比较,减少了任务切换次数,因而可以以良好的效率处理任务,减轻CPU处理负担。
再有,由于存取控制电路10具备退避用寄存器,故即便是在所有的存取口都正在使用的时候有了中断处理,也可以使正在使用的一个存取口退避到退避用寄存器内,来执行中断处理。因此,与在CPU中具备退避用寄存器的现有例比,可以减轻CPU的负担。
在本实施例中,虽然说明的是CPU16对DRAM12进行存取的情况,但是,也可以是DRAM以外的存储器,例如,SRAM或ROM。
另外,由于ROM是读出专用存储器,故只要使用具备读入上述存取控制电路10的数据的功能的存取控制装置即可。
此外,在本实施例中,虽然说明的是具备3个存取口、1个用来使存放在任意一个存取口内的信息进行退避的区域就是说退避用寄存器的存取控制装置,但是存取口的个数、退避用寄存器的个数,都不受限于在本实施例中说明的个数,可以与存取控制装置的用途相吻合地恰当地决定。
对由CPU(Central Processing Unit,中央处理单元)对存储器进行存取的所有的装置都可以应用。
权利要求
1.一种对来自可以执行多任务时分处理和中断处理的CPU对预定的存储器的存取进行中继控制的存取控制装置,具备对每一次存取都存放来自上述CPU的关于存取的信息的多个存取口;对上述多个存取口的使用状况进行管理,并把上述使用状况通知上述CPU的管理部分,其特征是上述CPU根据由上述管理部分提供的使用状况,把与存取有关的信息写入到上述多个存取口之内的未使用的存取口内。
2.权利要求1所述的存取控制装置,其特征是上述管理部分还具备退避区域,用来在上述多个存取口都已经使用时,使存放在该任意一个存取口内的信息退避,以便在启动别的任务或中断处理的情况下,把与该启动后的别的任务或中断处理的存取要求有关的信息,存放到任意的一个存取口内;退避和返回装置,用来使已写入到上述任意一个存取口内的信息退避到退避区域内,使已退避到退避区域内的信息返回到存取口内。
3.权利要求1或2所述的存取控制装置,其特征是每一个存取口都具备地址指定装置,用来指定上述CPU想要存取的存储器的地址;保持装置,用来暂时地保持从被上述地址指定装置指定的地址中读出来的数据,或用来读入到被上述地址指定装置指定的地址中去的数据;地址可变指定装置,用来指定是否使被上述地址指定装置指定的地址增值或减值。
4.一种由可以执行多任务的时分处理和中断处理的CPU,通过具有多个存取口和管理部分的存取控制装置对规定的存储器进行存取的存取方法,其特征是上述管理部分识别上述多个存取口的使用状况,上述CPU把与存取有关的信息存放到被识别为未被上述管理部分使用的任意一个存取口内,上述管理部分,在向上述任意一个的存取口内进行存取时,作为上述任意一个存取口的使用状况,把正在使用之中这一情况记录到上述管理部分内,上述管理部分根据所存放的信息进行对上述存储器的存取,上述管理部分,在上述存取结束之后,作为上述任意一个存取口的使用状况,把正在等待之中这一情况记录到上述管理部分内。
5.权利要求4所示的存取方法,其特征是上述管理部分把上述多个存取口识别为全都正在使用之中时,使正存放在任意一个存取口内的信息,退避到上述管理部分内,上述CPU把与存取有关的信息存放到上述任意一个存取口内,上述管理部分根据所存放到信息,对上述存储器进行存取,上述管理部分,在结束了上述存取之后,使已退避到上述管理部分中的信息返回到上述任意一个存取口内,上述管理部分,继续执行以所返回的信息为依据的存取。
全文摘要
一种存取控制装置,具备:对每一次存取都存放来自CPU(16)的与存取有关的信息的多个存取口(1、2、3),管理多个存取口(1、2、3)的使用状况,并把使用状况通知CPU(16)的存储区管理部分(5)。CPU(16),根据存储区管理部分(5)提供的使用状况,把与存取有关的信息,写入到多个存取口(1、2、3)之内未使用的存取口内。借助于此,可以提供具有不对错误的地址进行存取、可以抑制CPU处理负担、不需要复杂的固件的记述的存取控制装置。
文档编号G06F9/46GK1293778SQ00800078
公开日2001年5月2日 申请日期2000年1月20日 优先权日1999年1月27日
发明者井上贵生, 今村泰 申请人:松下电器产业株式会社