主机接口控制器以及储存装置控制方法
【技术领域】
[0001]本发明有关于主机接口控制器。特别有关于耦接中央处理单元并且自储存装置存取数据的主机接口控制器。
【背景技术】
[0002]储存装置可透过通讯接口与主机链接。主机上需对应该通讯接口设置主机接口控制器,在主机的中央处理单元操作下,通过该通讯接口读取该储存装置。
[0003]高效的主机接口控制器为本技术领域追寻目标。
【发明内容】
[0004]根据本发明一种实施方式实现的主机接口控制器包括控制模块、第一缓冲器组以及第二缓冲器组。所述控制模块控制所述第一缓冲器组以及第二缓冲器组以乒乓模式(ping-pong mode)交替为预取缓冲器组。当所述第一缓冲器组和第二缓冲器组的其中一个作为该预取缓冲器组时,所述控制模块自储存装置预取第一地址的数据并将其缓冲储存至该预取缓冲器组,并且以所述第一缓冲器组和第二缓冲器组的另一个中的数据回应该中央处理单元发出的对第二地址的数据的读取要求。
[0005]根据本发明另一种实施方式实现的储存装置控制方法包括:在储存装置与中央处理单元之间的主机接口控制器提供第一缓冲器组以及第二缓冲器组;控制所述第一缓冲器组以及第二缓冲器组以乒乓模式交替为预取缓冲器组;以及当所述第一缓冲器组和第二缓冲器组的其中一个作为该预取缓冲器组时,自该储存装置预取第一地址的数据并将其缓冲储存至该预取缓冲器组,并且以所述第一缓冲器组和第二缓冲器组的另一个中的数据回应该中央处理单元发出的对第二地址的数据的读取要求。该中央处理单元发出对应多个连续地址的多个读取要求。
[0006]所述第一以及第二缓冲器组所形成的乒乓模式操作将预取自该储存装置的连续地址的数据连绵地缓冲储存于其中,顺畅回应中央处理单元发出的连续地址读取要求。
[0007]下文特举实施例,并配合所附图示,详细说明本
【发明内容】
。
【附图说明】
[0008]图1图解根据本发明一种实施方式实现的计算机系统100;
[0009]图2为流程图,图解第一以及第二缓冲器组BI与B2的高速缓冲存储器模式如何回应中央处理单元发出的读取要求;
[0010]图3A、图3B为流程图,图解第一以及第二缓冲器组BI与B2的乒乓缓冲器模式如何回应中央处理单元发出的读取要求;以及
[0011]图4为流程图,图解计算机系统100的开机程序中第一与第二缓冲器组BI与B2的操作模式切换,所述开机程序执行储存装置104内的只读程序代码R0M_Code作基本输入输出系统(BI OS)开机程序。
【具体实施方式】
[0012]以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本
【发明内容】
。实际发明范围应依照权利要求书而界定。
[0013]图1图解根据本发明一种实施方式实现的计算机系统100,其中包括中央处理单元CPU、主机接口控制器102、储存装置104。中央处理单元CHJ包括高速缓冲存储器(cachememory) 106,且还耦接动态随机存取存储器(DRAM) 108。储存装置104包括只读程序代码R0M_Code。主机接口控制器102包括控制模块112、缓冲器模式设定缓存器110、第一缓冲器组B1、第二缓冲器组B2、第一缓存器组R1、第二缓存器组R2、多工器Mux以及比较器Comp。
[0014]第一缓冲器组BI以及第二缓冲器组B2设计来降低主机接口控制器102频繁发出指令读取储存装置104所造成的系统负担。以串行外设接口( SPI)接口为例,对应的主机接口控制器(如,SPI控制器)需发出一字节(byte)的读取命令、外加三字节(byte)的读取地址,才能自储存装置104读取一笔读回数据。由于每笔读回数据的长度可由主机接口控制器102决定,即是说,主机接口控制器102所发出的自储存装置104读取数据的读取命令后的3byte的读取地址仅仅是起始地址,而并没有结束地址,主机接口控制器102可自行控制结束地址。故本发明特意在主机接口控制器102设置的第一缓冲器组BI以及第二缓冲器组B2使得主机接口控制器102对储存装置104的单笔读取为大数据量,而不受中央处理单元CPU所发下来的读取指令中的要读取的数据长度的限制。主机接口控制器102无须频繁下达读取命令以读取该储存装置104,即可将数据大笔由储存装置104预取至第一缓冲器组BI以及第二缓冲器组B2回应中央处理单元CPU发出的读取要求。
[0015]至于对应第一缓冲器组BI以及第二缓冲器组B2设置的第一缓存器组R1、第二缓存器组R2、多工器Mux以及比较器Comp则是用来确认中央处理单元CPU所要求的储存装置104数据是否已预取于第一或第二缓冲器组BI或B2中。
[0016]特别是,本发明关于开机程序中,控制模块112依据中央处理单元CPU对储存装置104数据的需求,适应性地切换第一缓冲器组BI以及第二缓冲器组B2的操作模式。缓冲器模式设定缓存器110即是用来设定第一与第二缓冲器组BI与B2的操作模式。这里以在开机过程中的数据读取为例,但本发明并不以此为限。在其它实施方式中,只要是对储存装置104分阶段读取,在不同阶段的读取数据的地址连续性不同的应用中,都可以使用本发明的技术以适应性地切换第一缓冲器组BI以及第二缓冲器组B2的操作模式。
[0017]在开机程序中,中央处理单元CPU包括三阶段操作。第一阶段,高速缓冲存储器106以及该动态随机存取存储器108都未启动,中央处理单元CPU频繁重复读取该只读程序代码R0M_Code中相同地址的内容,而高速缓冲存储器106尚未启动,现有技术的主机接口控制器120必须频繁根据中央处理单元CPU的读取请求重复下达对应相同地址的读取请求至储存装置104,效率低下。第二阶段,高速缓冲存储器106启动,中央处理单元CPU对该只读程序代码R0M_Code的读取要求多为连续地址。第三阶段,动态随机存取存储器108也启动,中央处理单元CPU要求大尺寸搬移只读程序代码R0M_Code至该动态随机存取存储器108,由于中央处理单元CPU在此阶段下达的读取请求的地址是连续而不重复的,中央处理单元CPU的读取请求在高速缓冲存储器106往往是不命中的状态,因此现有技术的主机接口控制器120必须需要根据每笔读取请求对储存装置104下达读取指令(如,SPI控制器102需根据每笔读取请求对储存装置104下达包含一字节的读取命令、外加三字节的读取地址的读取指令)。总结而言,高速缓冲存储器106启动前的读取要求重复性高,高速缓冲存储器106启动后的读取要求多为连续地址。
[0018]本发明中在开机程序,缓冲器模式设定缓存器110根据该中央处理单元CPU的高速缓冲存储器106启动与否切换设定。高速缓冲存储器106启动前(第一阶段),第一与第二缓冲器组BI与B2操作于高速缓冲存储器模式,以回应中央处理单元CPU对相同地址的重复读取要求。高速缓冲存储器106启动后(第二、第三阶段,在其它实施例中,也可以仅在第三阶段),第一缓冲器组BI与第二缓冲器组B2操作于乒乓缓冲器模式,以回应中央处理单元CPU发出的连续地址的读取要求。其中,所谓高速缓冲存储器模式是控制模块112令第一以及第二缓冲器组BI与B2高速缓存储存该主机接口控制器102以第一以及第二缓冲器组BI与B2的多个缓冲器行的尺寸为读取数据长度读取自该储存装置104的数据。值得注意的是,如图1所示,第一缓冲器组BI以及第二缓冲器组B2分别包括8个缓冲器行,如第一缓冲器组BI包括缓冲器行Data_DW0?Data_DW7,第二缓冲器组BI包括缓冲器行Data_DW8?Data_DW15;每个缓冲器行的尺寸举例而言为4byte;在一实施例中,在开机过程的第一个阶段,重复读取的地址范围大约是64byte,因此设置整个第一以及第二缓冲器组BI与B2的尺寸为64byte;中央处理单元CPU所发出的读取要求所要求的数据举例而言以4byte为单位,但本发明并不以此为限。在此实施方式中的高速缓冲存储器模式下,控制模块112向储存装置104下达的一次读取命令的读取数据长度不必仅限于中央处理单元CHJ所要求的4byte,而可以是以第一和第二缓冲器组BI和B2的多个缓冲器行的尺寸(如4byte/8byte/16byte)为读取数据长度,具体每次读取的尺寸例如可经由设置主机接口控制器102中的某个寄存器(未绘示)来设置,如此可以不必频繁对储存装置104下达读取指令(如,SPI控制器102需根据每笔读取请求对储存装置104下达包含一字节的读取命令、外加三字节的读取地址的读取指令)而一次读取多行缓冲器的数据回来。所谓乒乓缓冲器模式是控制模块112令第一缓冲器组BI以及第二缓冲器组B2以乒乓模式交替为预取缓冲器组,缓冲储存预取自该储存装置104的地址连续的数据,例如当第一缓冲器组BI和第二缓冲器组B2的其中一个作