总线仲裁方法和半导体装置的制作方法

文档序号:6554185阅读:139来源:国知局

专利名称::总线仲裁方法和半导体装置的制作方法
技术领域
:本发明涉及在多个总线主控器(busmaster)共享资源情况下的总线仲裁方法以及实现该总线仲裁方法的半导体装置。
背景技术
:如图1中所示,在多个总线主控器(A)101和(B)102共享资源104的半导体装置中,必需使用总线仲裁装置103来调整关于总线的访问。下文中,参照图28说明日本未决专利申请No.2000-35943的公开文本中列举的半导体装置中的常规总线仲裁方法。半导体装置包括总线主控器(A)2801、总线主控器(B)2802和总线仲裁设备2806。总线仲裁设备2806包括用于保留总线仲裁中优先级的优先级存储单元2804、用于改变总线仲裁中优先级的总线仲裁管理单元2803和用于基于总线仲裁中优先级来执行总线仲裁的总线仲裁单元2805。总线仲裁管理单元2803根据总线请求信号来测量总线访问频率,由此改变总线仲裁中的优先级。在常规总线仲裁方法中,根据总线请求获取总线访问频率,并由此如所述那样改变优先级。然而,因为从总线主控器接收到总线请求时产生了一些等待时间,这种方法不能即时响应。进一步地,由于IRQ等产生的高速缓冲存储器的再填充(refilling),难于检测大量总线请求的产生。
发明内容因此,本发明的主要目的是实时改变总线仲裁中的优先级,并迅速地改进总线可用性。为了实现上述目的,在根据本发明的半导体装置中,基于总线主控器的高速缓冲存储器命中率来改变总线仲裁中的优先级,以执行该总线仲裁。因此,根据本发明的半导体装置包括至少两个总线主控器、高速缓冲存储器命中率测量设备和总线仲裁设备。该总线主控器中的每一个都包括用于暂时存储在它们之间发送和接收的数据的高速缓冲存储器,以及至少一个资源,并且该总线主控器通过至少一条总线共享该资源。高速缓冲存储器命中率测量单元计算向包括在该总线主控器的至少一个中的高速缓冲存储器所做的访问的命中率。该总线仲裁设备基于由该高速缓冲存储器命中率测量单元计算的命中率,执行该总线主控器和资源之间的总线仲裁。根据本发明,该高速缓冲存储器访问的状态可以在该总线仲裁设备从该总线主控器接收该访问请求之前被掌握,并立即被反映在该总线仲裁中的优先级上。结果,可以在当时最优地执行该总线仲裁。通过在该总线主控器共享该资源和半导体装置时实时更新该总线仲裁中的优先级,本发明对用于执行该总线仲裁的总线仲裁方法是有效的。本发明的这些和其它目的以及优点将通过下面本发明优选实施例的说明而变得清楚。本领域技术人员将通过本发明的实施而注意到此说明书中没有列举的许多好处。图1示出提供总线主控器、总线仲裁装置和资源的结构。图2为示出根据本发明实施例1-9的总线仲裁装置、总线主控器和资源的构造的框图。图3示出根据实施例1的高速缓冲存储器命中率测量设备、总线仲裁管理单元和优先级存储单元的构造。图4示出优先级存储单元中的优先级表。图5示出根据实施例2的高速缓冲存储器命中率测量单元的构造。图6示出根据实施例2的总线仲裁管理单元的构造。图7示出根据实施例3的高速缓冲存储器命中率测量单元的构造。图8示出根据实施例3的包括每应用寄存器指定单元的命中历史寄存器的构造。图9示出根据实施例3的包括用户指定寄存器指定单元的命中历史寄存器的构造。图10示出根据实施例3的包括电流调整单元的命中历史寄存器的构造。图11示出根据实施例4的总线仲裁管理单元的构造。图12示出根据实施例4的包括每应用表格指定单元的优先级转换表的构造。图13示出根据实施例4的包括用户表格指定单元的优先级转换表的构造。图14示出根据实施例4的包括电流调整单元的优先级转换表的构造。图15示出根据实施例5的高速缓冲存储器命中率测量单元的构造。图16示出根据实施例6的高速缓冲存储器命中率测量单元的构造。图17示出根据实施例6的高速缓冲存储器访问中的错误/命中的示例性状态。图18示出根据实施例7的完整结构。图19示出根据实施例7的高速缓冲存储器命中率测量单元的构造。图20示出根据实施例7的总线仲裁管理单元的构造。图21示出根据实施例8的完整结构。图22示出根据实施例8的高速缓冲存储器命中率测量单元的构造。图23示出根据实施例9的总线仲裁管理单元和优先级存储单元的构造。图24示出根据实施例9的寄存器中的信息。图25示出根据实施例9的优先级改变方法。图26示出根据实施例9的该优先级改变方法。图27示出根据实施例9的该优先级改变方法。图28示出在执行常规总线仲裁时的完整结构。具体实施例方式下文中,参照本发明的优选实施例。图2示出根据本发明实施例1-9的完整结构。半导体装置201包括总线主控器(A)202、总线主控器(B)206和总线仲裁设备210。总线主控器(A)202和总线主控器(B)206通过总线仲裁设备210共享资源214。总线主控器(A)202和总线主控器(B)206分别包括高速缓冲存储器(A)204和高速缓冲存储器(B)208,以及高速缓冲存储器命中率测量单元(A)205和高速缓冲存储器命中率测量单元(B)209。高速缓冲存储器(A)204和高速缓冲存储器(B)208暂时存储在它们自身和资源214之间被发送和接收的数据。高速缓冲存储器命中率测量单元(A)205检查核心(A)203的访问状态、高速缓冲存储器(A)204的访问状态以及由核心(A)203所做的关于高速缓冲存储器(A)204的访问的状态,并且把检查的状态记录其中,以由此测量相关高速缓冲存储器命中率。以同样方式,高速缓冲存储器命中率测量单元(B)209检查核心(B)207的访问状态、高速缓冲存储器(B)208的访问状态以及由核心(B)208所做的关于高速缓冲存储器(B)208的访问的状态,并且把检查的状态记录其中,以由此测量相关高速缓冲存储器命中率。总线仲裁设备210包括优先级存储单元212、总线仲裁管理单元211和总线仲裁单元213。优先级存储单元212保留总线仲裁中的优先级。总线仲裁中优先级的初始值由厂商或半导体装置的用户预先设置,并存储在优先级存储单元212中。例如,设置合理的且无优先次序的仲裁顺序作为初始值。总线仲裁管理单元211基于从高速缓冲存储器命中率测量单元(A)205和高速缓冲存储器命中率测量单元(B)209输出的信息,改变优先级存储单元212中的总线仲裁优先级。总线仲裁单元213基于优先级存储单元212中的优先级执行总线仲裁。从高速缓冲存储器命中率测量单元(A)205和高速缓冲存储器命中率测量单元(B)209输出的信息是优先级升高或降低请求或被编码的高速缓冲存储器命中率。下面说明的本发明实施例中列举的命中历史寄存器对应于高速缓冲存储器访问记录器。命中率编码表对应于第一对应关系存储器和第二对应关系存储器。优先级转换表对应于第三对应关系存储器。然而,优先级转换表2002对应于第四对应关系存储器。每应用寄存器指定单元(per-applicationregesterdesignatingunit)和用户寄存器指定单元对应于用于从多个高速缓冲存储器访问记录器中任意选择的选择器。每应用表格指定单元和用户表格指定单元对应于用于从多个第三对应关系存储器中任意选择的选择器。命中率初始化单元对应于初始化器。指针对应于指示器。实施例1图2示出根据本发明实施例1的半导体装置的完整结构。图3示出根据实施例1的高速缓冲存储器命中率测量单元(A)205和(B)209以及总线仲裁管理单元211的构造。在实施例1中,高速缓冲存储器命中率测量单元(A)205和(B)209基本上具有相同的结构,并且这些元件(A)205和(B)209在下面的说明和图3中被称为高速缓冲存储器命中率测量设备304。高速缓冲存储器命中率测量设备304包括命中历史寄存器301、判断单元302和请求表303。总线仲裁管理单元211包括控制器306。接下来说明根据实施例1的半导体装置的操作。首先,依靠FIFO方法在命中历史寄存器301中记录高速缓冲存储器的访问。访问被多次记录,其中命中被表示为“1”而错误被表示为“0”。在图3所示的示例中,在命中历史寄存器301中,将四个过去的高速缓冲存储器访问记录为命中历史。在请求表303中,以表格形式彼此对应地存储命中历史寄存器301(下文中称作命中历史(TAG))的记录内容以及优先级改变请求(优先级升高或降低请求)。在根据实施例1的请求表303中,优先级升高请求被存储为数据“1”而优先级降低请求被存储为数据“0”。在实施例1中,优先级升高请求(“1”)对应于低于50%的命中率,而优先级降低请求(“0”)对应于至少50%的命中率。命中率是指请求表303中记录的高速缓冲存储器访问结果中的多少可能是命中的概率(命中概率)。例如,在根据实施例1的构造中,“0000”(0%)和“0001”(25%)对应于低于50%的命中率,而例如“1100”(50%)、“1101”(75%)、“1110”(75%)和“1111”(100%)对应于至少50%的命中率。判断单元302读取命中历史寄存器301(TAG)的记录内容,并对照请求表303检查读取到的命中历史,以由此从请求表303中读取对应于命中历史(TAG)的命中率改变请求,并把读取到的改变请求输出给总线仲裁管理单元211。在图3示出的示例中,命中历史寄存器301(TAG)的记录内容是“1101”(=75%的命中率)。因此,作为对应于记录内容(TAG)的改变请求,判断单元302从请求表303中读取优先级降低请求,并把读取到的请求输出给总线仲裁管理单元211。总线仲裁管理单元211的控制器306基于提供的改变请求(当前情况下的优先级降低请求“0”),更新优先级存储单元212中的优先级。如图4中所示,优先级存储单元212在其中存储优先级表,并由此存储优先级。在优先级表中,其中每一项都在每时隙中被示出,在每个时隙中优先的,总线主控器以○标记,并且总线仲裁单元213基于构成一个周期的一定模式执行总线仲裁。例如,在当前优先级表401的情况下,总线主控器(A)在五个示例的前三个示例(时隙号1、2和3)中优先级高,而总线主控器(B)在其余两个示例(时隙号4和5)中优先级高。重复上述模式,直到优先级表被更新。例如,在总线主控器(A)的优先级被降低“1”时,当前的优先级表401被更新为优先级表402。在更新后的优先级表402中,总线主控器(A)在四个示例的前二个示例(时隙号1和2)中优先级高,而总线主控器(B)在其余两个示例(时隙号3和4)中优先级高。总线仲裁单元213基于此模式执行总线仲裁,直到优先级被更新。将关于优先级的上限值和下限值提供给控制器306,以使控制器306依照提供的值来降低或升高优先级。结果,可以防止过度升高或降低优先级。作为上述处理的结果,总线仲裁中的优先级基于高速缓冲存储器命中率被实时地更新,这实现了当时最优的总线仲裁。实施例2图2示出了根据本发明实施例2的半导体装置的完整结构。图5中示出了根据实施例2的高速缓冲存储器命中率测量单元(A)205、高速缓冲存储器命中率测量单元(B)209和总线仲裁管理单元211。根据实施例2的高速缓冲存储器命中率测量单元(A)205和(B)209基本上具有相同的结构,并且这些元件在下面的说明和图5中被称为高速缓冲存储器命中率测量设备504。如图5中所示,高速缓冲存储器命中率测量设备504包括命中历史寄存器301、判断单元502和命中率编码表503。进一步地,如图6中所示,总线仲裁管理单元包括控制器601和优先级转换表602。接下来说明上述元件的操作。依靠FIFO方法在命中历史寄存器301中存储高速缓冲存储器的访问,其中命中被表示为“1”而错误被表示为“0”。判断单元502参考命中率编码表503,并把命中历史寄存器301(TAG)中记录的值和编码的命中率(下文中称为命中率编码)彼此联系,以由此读取对应于值(TAG)的命中率编码,并把读取到的命中率编码输出给总线仲裁管理单元211。在命中率编码中,“00001”表示0%的命中率,“00010”表示25%的命中率,“00100”表示50%的命中率,“01000”表示75%的命中率而“10000”表示100%的命中率。在图5示出的示例中,命中历史寄存器301(TAG)中存储的值是“1101”,于是判断单元502在命中率编码表503中参考其中值(TAG)表示“1101”的项。在本示例中,对应于TAG“1101”的命中率编码是表示75%命中率的“01000”。由此,判断单元502从命中率编码表503中读取命中率编码“01000”,并把读取到的编码输出给总线仲裁管理单元211。总线仲裁管理单元211的控制器601基于被提供的命中率编码,更新优先级存储单元212中的优先级。更具体地,控制器306为了被提供的命中率编码而参考优先级转换表602,以由此从优先级转换表602中读取对应于命中率编码的优先级。在图6中所示的总线仲裁管理单元211(优先级转换表602)中,命中率编码“00001”(=0%命中率)对应于优先级“4”,命中率编码“00010”(=25%命中率)对应于优先级“3”,命中率编码“00100”(=50%命中率)对应于优先级“2”,命中率编码“01000”(=75%命中率)对应于优先级“1”,而命中率编码“10000”(=100%命中率)对应于优先级“0”。在图5和6中所示的示例中,从命中率编码表503读取命中率编码“01000”,并提供给控制器601。因此,控制器601从优先级转换表602中读取优先级“1”。然后,控制器601向优先级存储单元212发出请求,以使优先级为“1”。优先级存储单元212基于来自控制器601的请求更新优先级表。优先级存储单元212中的优先级表和更新优先级表的方法与实施例1中所述的相同。总线仲裁单元213基于优先级表的模式执行总线仲裁。在优先级转换表中,命中率编码与优先级以固定方式彼此一一对应。然而,依赖于不同的进程,如果在控制器601中额外提供(安装)用于改变它们之间对应关系的功能(更具体地讲,软件),则可以在每个进程中优化总线仲裁。实施例3图2示出了根据本发明实施例3的半导体装置的完整结构。根据实施例3的高速缓冲存储器命中率测量单元(A)205和高速缓冲存储器命中率测量单元(B)209基本上以相同的方式构成,并且在下面的说明和图7中被称为高速缓冲存储器命中率测量设备706。高速缓冲存储器命中率测量设备706包括多个命中历史寄存器701、702和703、判断单元704和命中率转换表705。高速缓冲存储器命中率测量设备706以与实施例2中所述的相同方式操作。更具体地,高速缓冲存储器命中率测量设备706测量高速缓冲存储器命中率,以由此从命中率编码表705中读取对应于测量的高速缓冲存储器命中率的命中率编码,并把读取到的命中率编码输出给总线仲裁单元211。在实施例3中,提供多个命中历史寄存器701、702和703,并且它们被可选择地用于不同的进程。因此,可以在每个进程中更精确地测量命中率。可以预先确定或由用户通过程序指定将使用命中历史寄存器701、702和703中的哪一个。例如,如图8中所示,可以额外提供每应用寄存器指定单元804,用于指定在将被操作的各个应用(软件)中应该使用命中历史寄存器701A、702A和703A中的哪一个,并且测量可被额外提供的每个应用的高速缓冲存储器命中率。每应用寄存器指定单元804预先保留关于应用的信息,并由此在改变应用之前指定没有被立即使用的寄存器。每应用寄存器指定单元804的提供,在以多任务方式运行应用的状态下尤为发挥作用。如图9中所示,作为另一个例子,可以另外提供用于做出调整的用户寄存器指定单元904,以使用由用户指定的寄存器。由用户产生的程序运行用户寄存器指定单元904,来指定应该使用寄存器701B、702B和703B中的哪一个。如图10中所示,在根据实施例3提供多个命中历史寄存器701、702和703的构造中,当额外提供用于调整应被施加给多个命中历史寄存器701、702和703的电流的电流调整单元1004时,可以以这样的方式降低能量消耗不向当前没有被使用的命中历史寄存器701、702和703中的任何一个施加电流。以与实施例2中所说明的相同的方式构造和运行总线仲裁管理单元211。实施例4图2示出了根据本发明实施例4的半导体装置的完整结构。实施例4的特征在于如图11中所示的总线仲裁管理单元1105的构造。总线仲裁管理单元1105包括控制器1101以及多个优先级转换表1102、1103和1104。控制器1101在优先级转换表1102、1103和1104中参考命中率编码,以由此从优先级转换表1102、1103和1104中读取对应于命中率编码的优先级。控制器1101把读取到的优先级输出给优先级存储单元212。更新优先级存储单元212中优先级表的操作与实施例2中所说明的相同。在实施例4中,提供每一个都列举不同的TAG(命中率)和优先级之间对应关系的多个优先级转换表1102、1103和1104,并且这些优先级转换表1102、1103和1104被可选择地用于不同的进程。因此,可以获得精确并且合适的优先级,这优化了总线仲裁。可以预先确定或由用户通过程序指定将使用优先级转换表1102、1103和1104中的哪一个。例如,在图12中,提供用于指定每个应用应该使用优先级转换表1102A、1103A和1104A中的哪一个的每应用表格指定单元(per-applicationtabledesignatingunit)1204。每应用表格指定单元1204预先保留关于应用的信息,并由此在应用改变时,指定将使用优先级转换表1102A、1103A和1104A中的哪一个。进一步地,图13中所示的构造提供用于做出调整的用户表格指定单元1304,以使用由用户预先指定的优先级转换表1102B、1103B和1104B中的任意一个。由用户产生的程序运行用户表格指定单元1304,以让用户他/她自己指定将使用优先级转换表1102B、1103B和1104B中的哪一个。进一步地,如图14中所示,在提供用于调整应被施加给优先级转换表1102、1103和1104的电流的电流调整单元1404时,可以以这样的方式降低能量消耗不向任何没有被使用的优先级转换表施加电流。以与实施例2中所说明的相同的方式构造和运行高速缓冲存储器命中率测量单元205和209。实施例5图2示出了根据本发明实施例5的半导体装置的完整结构。实施例5的特征在于如图15中所示的高速缓冲存储器命中率测量设备1505的构造。以与如图15中所示的高速缓冲存储器命中率测量设备1505相同的方式,构造根据实施例5的高速缓冲存储器命中率测量单元(A)205和高速缓冲存储器命中率测量单元(B)209。总线仲裁管理单元1506具有与实施例2中参照图6所说明的相同的构造,然而,它的操作稍有不同。高速缓冲存储器命中率测量设备1505包括命中历史寄存器301、判断单元502、命中率编码表503和传输方法检测单元1504。以与实施例2中所说明的相同的方式构造和运行命中历史寄存器301、判断单元502和命中率编码表503。实施例5的特征在于提供传输方法检测单元1504。传输方法检测单元1504检测总线主控器的传输方法是否为单一传输(singletransfer)或突发传输,并把检测结果输出给总线仲裁管理单元1506。单一传输是在核心从高速缓冲存储器中读取不能被存储在高速缓冲存储器中的数据时,换句话说,在发生不可高速缓冲存储时,所采用的传输方法。突发传输是在发生高速缓冲存储器错误时采用的方法。在单一传输的情况下,仅要求总线主控器访问资源一次,以从其中读取数据,而在突发传输的情况下,要求总线主控器访问资源多次,以从其中读取数据。因此,在发生突发传输时,与单一传输相比,必需要升高将要被访问的总线主控器的优先级。基于上述理由,突发传输和单一传输需要被彼此区别。以与实施例2中所说明的相同的方式构成根据本实施例的总线仲裁管理单元1506,然而,控制器601’被不同地操作。控制器601’接收从传输方法检测单元1504输出的传输方法的信息,并且在突发传输的情况下,如实施例2中所说明的,请求优先级存储单元212更新优先级表,而在单一传输的情况下,请求优先级存储单元212把优先级存储单元212的优先级设置为1。为了做出这些请求,控制器601’控制自身,以便被传输方法检测单元1504通知单一传输时,优先级转换表602的优先级总是参考“1”项。可替代地,控制器601’控制自身,以便请求优先级存储单元212总是把优先级设为“1”,而不参考优先级转换表602。在上述方式中,可以防止任何单一传输中对资源的不必需的访问,结果可以有效地执行总线仲裁。实施例6图2示出了根据本发明实施例6的半导体装置的完整结构。实施例6的特征在于如图16中所示的高速缓冲存储器命中率测量设备1605的构造。更具体地,以与如图16中所示的高速缓冲存储器命中率测量设备1605相同的方式构造根据实施例6的高速缓冲存储器命中率测量单元(A)205和高速缓冲存储器命中率测量单元(B)209。高速缓冲存储器命中率测量设备1605包括命中历史寄存器301、命中转变存储单元1602、预测单元1603和请求表1604。接下来说明上述元件的操作。在命中历史寄存器301中,依靠FIFO方法,高速缓冲存储器访问的命中被存储为数据“1”,并且错误被存储为数据“0”。在命中转变存储单元1602中,记录可能在命中历史寄存器301中产生的状态(0和1的组合)以及对应于可能状态(命中/错误)的最后四个紧邻的访问状态。参照图17进一步详细说明命中转变存储单元1602的记录内容。例如,假定产生了图17中示出的高速缓冲存储器的访问状态,观察到高速缓冲存储器命中和高速缓冲存储器错误的访问组合为“1101”的部分,并且可以从观察图17中示出的访问组合后紧邻的最后四个访问获知“1”→“0”→“1”→“1”的转变。基于上述访问转变的结果,命中转变存储单元1602在访问组合TAG对应于“1101”项的历史中记录“1011”。以同样方式,例如,在访问组合TAG对应于“0000”项的历史中记录“1000”。例如在访问组合TAG对应于“0001”项的历史中记录“0010”。例如在访问组合TAG对应于“1110”项的历史中记录“0101”。例如在访问组合TAG对应于“1111”项的历史中记录“1110”。因为高速缓冲存储器访问的状态改变,在必需时更新命中转变存储单元1602中历史的值。预测单元1603读取对应于命中历史存储单元1602的访问组合TAG的历史的值,并在请求表1604中参考读取到的历史。在请求表1604中,以表格形式彼此对应地预先存储命中转变存储单元1602的记录内容(下文中称为命中转变历史(TAG))和优先级改变请求(优先级升高或降低请求)。在根据实施例6的请求表1604中,优先级升高请求被存储为数据“1”,而优先级降低请求被存储为数据“0”。请求表1604中的上述数据对应基于来自命中转变历史(TAG)的核心操作的预测结果。例如,如图17中所示,在命中转变历史(TAG)的值为“1011”时,访问组合后面紧邻的最后四个访问中的三个访问的结果为“1”,这意味着可以把获得高速缓冲存储器命中的概率(命中率概率)评估为高(75%)。结果,总线主控器无需访问资源,并且因此优先级降低请求“0”对应于总线主控器。在实施例6中,作为对应关系的示例,优先级升高请求“1”对应于低于50%的命中率预测,而降低请求“0”对应于至少50%的命中率预测。预测单元1603把从请求表1604读取到的优先级降低请求或优先级升高请求输出给总线仲裁管理单元211。当如此预测高速缓冲存储器访问的将来状态,换句话说,发生高速缓冲存储器命中或是错误时,可以更大可能地执行当时被优化的总线仲裁。以与实施例1中所说明的相同的方式构造和操作总线仲裁管理单元211。实施例7图18示出了根据本发明实施例7的半导体装置的完整结构。半导体装置1812包括总线主控器(A)1803、总线主控器(B)1807、总线仲裁设备1811和高速缓冲存储器命中率测量单元1804。高速缓冲存储器命中率测量单元1804同时记录和测量总线主控器(A)1803和总线主控器(B)1807的高速缓冲存储器命中率。总线主控器(A)1803和(B)1807通过总线仲裁设备1811共享资源214。总线主控器(A)1803包括核心(A)203和高速缓冲存储器(B)204。总线主控器(B)1807包括核心(B)207和高速缓冲存储器(B)208。总线仲裁设备1811包括优先级存储单元212、总线仲裁管理单元1808和总线仲裁单元213。总线仲裁管理单元1808基于从高速缓冲存储器命中率测量单元1804输出的信息更新优先级存储单元212中的优先级。总线仲裁单元213基于优先级存储单元212中的优先级执行总线仲裁。从高速缓冲存储器命中率测量单元1804输出的信息是总线主控器(A)1803和总线主控器(B)1807的高速缓冲存储器命中率。高速缓冲存储器命中率在本实施例中被编码。说明高速缓冲存储器命中率测量单元1804的构造和操作。如图19中所示,高速缓冲存储器命中率测量设备1905包括用于总线主控器(A)1803的命中历史寄存器1901、用于总线主控器(B)1807的命中历史寄存器1902、命中率编码表1904和判断单元1903。通过FIFO方法在命中历史寄存器1901和1902中存储总线主控器(A)1803和(B)1807的高速缓冲存储器访问,其中命中被记录为数据“1”,并且错误被记录为数据“0”。判断单元1903在命中率编码表1904中参考命中历史寄存器1901和1902中记录的命中历史(TAG),以由此从命中率编码表1904中读取对应于命中历史(TAG)的命中率编码,并把读取到的命中率编码输出给总线仲裁管理单元1808。判断单元1903同时输出总线主控器(A)1803和(B)1807的命中率编码。判断单元1903根据实施例2中说明的方法参考命中率编码表1904。说明总线仲裁管理单元1808的构造和操作。如图20中所示,总线仲裁管理单元1808包括控制器2001和优先级转换表2002。在优先级转换表2002中记录命中率编码组合和优先级组合之间的对应关系。命中率编码组合是总线主控器(A)1803和(B)1807的命中率编码的组合。优先级组合是总线主控器(A)1803和(B)1807的优先级的组合。在图20中示出的总线仲裁管理单元2003(优先级转换表2002)中,主控器A的命中率编码“00001”(=0%的命中率)以及主控器B的命中率编码“00001”(=0%的命中率)的组合对应于组合(主控器A优先级“4”),(主控器B优先级“4”)。主控器A的命中率编码“00001”(=0%的命中率)以及主控器B的命中率编码“00010”(=25%的命中率)对应于组合(主控器A优先级“4”)、(主控器B优先级“3”)。主控器A的命中率编码“00001”(=0%的命中率)以及主控器B的命中率编码“00100”(=50%的命中率)对应于组合(主控器A优先级“4”)、(主控器B优先级“3”)。主控器A的命中率编码“10000”(=100%的命中率)以及主控器B的命中率编码“10000”(=100%的命中率)对应于组合(主控器A优先级“0”)、(主控器B优先级“0”)。控制器2001在优先级转换表2002中参考从高速缓冲存储器命中率测量设备1905提供的命中率编码,以由此从优先级转换表2002中读取对应于命中率编码组合的优先级组合,并把读取到的组合输出给优先级存储单元212。如所描述的,在实施例7中,总线主控器(A)1803和(B)1807的命中率编码被同时输入给控制器2001。响应于此,对应于总线主控器(A)1803和(B)1807的命中率编码组合的优先级组合被存储在优先级转换表2002中。因此,在实施例7中,总线主控器(A)1803和(B)1807的高速缓冲存储器访问状态都可以被同时考虑。结果,可以更精确地实时提供优先级。控制器2001基于从优先级转换表2002获取的优先级来更新优先级存储单元212中的优先级。通过实施例2中说明的方法更新优先级。实施例8图21示出了根据本发明实施例8的半导体装置的完整结构。半导体装置2113包括总线主控器(A)2104、总线主控器(B)2108和总线仲裁设备2112。总线主控器(A)2104和(B)2108通过总线仲裁设备2112共享资源214。总线主控器(A)2104包括核心(A)203、高速缓冲存储器(A)204和高速缓冲存储器命中率测量单元(A)2103。总线主控器(B)2108包括核心(B)207、高速缓冲存储器(B)208和高速缓冲存储器命中率测量单元(B)2107。高速缓冲存储器命中率测量单元(A)2103检查并记录由核心(A)203所做的关于高速缓冲存储器(A)204和高速缓冲存储器(B)208的访问的状态,以由此测量核心(A)203的高速缓冲存储器命中率。高速缓冲存储器命中率测量单元(B)2107检查并记录由核心(B)207所做的关于高速缓冲存储器(B)208和高速缓冲存储器(A)204的访问的状态,以由此测量核心(B)207的高速缓冲存储器命中率。总线仲裁设备2112包括优先级存储单元212、总线仲裁管理单元211和总线仲裁单元213。总线仲裁管理单元211基于从高速缓冲存储器命中率测量单元(A)2103和(B)2107输出的信息来更新优先级存储单元212中的优先级。总线仲裁管理单元211、优先级存储单元212和总线仲裁单元213以与实施例2中所说明的基本相同的方式操作。实施例8的特征在于高速缓冲存储器命中率测量单元(A)2103和高速缓冲存储器命中率测量单元(B)2107的构造。更具体地,根据实施例8的高速缓冲存储器命中率测量单元(A)2103和(B)2107是以与图22中所示的高速缓冲存储器命中率测量设备2205相同的方式构造的。高速缓冲存储器命中率测量设备2205包括命中率初始化单元2201、命中历史寄存器301、判断单元502和命中率编码表503。命中历史寄存器301、命中率编码表503和判断单元502的操作与实施例2中所说明的相同。实施例8的特征在于提供命中率初始化单元2201。更具体地,在向半导体装置2113提出进程请求时,该进程的进程ID和IRQ被提供给命中率初始化单元2201。命中率初始化单元2201基于进程ID检测由核心执行的进程的变化,并进一步地基于IRQ检测另一进程的中断。在检测到这些变化时,命中率初始化单元2201把命中历史寄存器301的值初始化为“0000”。因为下列原因执行该初始化。在由核心执行的进程变化或产生IRQ时,总线主控器(A)2104和(B)2108更加有必要访问资源214。基于此事实,命中率初始化单元2201把命中历史寄存器301的值初始化为“0000”,以由此改进优先级变化的精度。进程ID从核心(A)203和(B)207被输入给高速缓冲存储器测量单元(A)2103和(B)2107,而IRQ被直接输入给高速缓冲存储器测量单元(A)2103和(B)2107,不牵涉核心(A)203和(B)207。尽管当被执行的进程变化和产生由另一进程造成的中断时都发出进程ID,但是命中率初始化单元2201基于发生中断时IRQ的检测,把命中历史寄存器301的值初始化为“0000”。由于下列理由执行初始化。由IRQ产生的进程ID在IRQ后被发出。因此,命中率初始化单元2201基于IRQ的检测来检测中断的发生要快于基于由于IRQ而产生的进程ID的中断检测。从而另外提供具有不仅检测进程ID而且检测IRQ的功能的命中率初始化单元2201时,可以在检测进程ID之前初始化命中历史寄存器2202的值,这允许在早期准备任意的随后处理。在没有中断而只是改变将要被执行的进程时,仅发出进程ID。因此,命中率初始化单元2201在执行的进程基于进程ID的检测被改变时,执行采用的初始化操作。以上述方式,在早期检测到高速缓冲存储器再填充的发生。结果,可以实时地把更高的优先级实时赋予更需要总线访问的总线主控器。实施例9图2示出了根据本发明实施例9的半导体装置的完整结构。图23示出根据实施例9的总线仲裁管理单元2305和优先级存储单元2307的构造。总线仲裁管理单元2305包括控制器2301、优先级转换表602、寄存器2303和指针2304。优先级存储单元2307包括优先级表2306。在实施例9中,根据不同于那些在实施例1到8中所说明的方法改变优先级存储单元2307中的优先级表2306。在实施例1到8中,在更新当前优先级表401时,如参照图4所说明的那样改变优先级。然后,总线仲裁单元213以时隙号1、然后2、3、...的顺序参考当前优先级表401,以由此读取在相关时隙中将被设为优先的总线主控器。在此之后,总线仲裁单元213以这样的方式执行总线仲裁由读取到的将被设为优先的总线主控器进行总线访问。相反,根据实施例9的优先级表2306中的优先级根据优先级转换表602中的最高优先级被固定并且从不更新。包括指针2304的总线仲裁管理单元2305基于由指针2304指示的时隙执行总线仲裁。指针2304可以任意地改变指示的时隙。更具体地,指针2304适于通过以这样的方式跳过时隙来改变指示的时隙时隙1、2、5、...。因为指针适于这样的方式,在实施例9中可以在不更新优先级表2306的情况下改变优先级。接下来下面说明各个元件的操作。控制器2301从优先级转换表602中读取与从高速缓冲存储器命中率测量单元205和209提供的命中率编码相对应的优先级,并把读取到的优先级输出给寄存器2303。寄存器2303保留各个总线主控器的最高优先级信息、各个总线主控器的当前优先级信息和用于改变将被设为优先的总线主控器的时隙号信息。寄存器2303基于从优先级转换表602提供的优先级来重写各个主控器的当前优先级信息。例如,如图23中所示,在优先级转换表2302中的最高优先级指示“4”时,寄存器2303中的最高优先级信息指示“4”。当优先级表2306中总线主控器将被设为优先的时隙号为1和5时,寄存器2303中改变将被设为优先的总线主控器的时隙号信息指示为“1”和“5”。控制器2301读取寄存器2303中的信息,以由此比较指针2304当前指示的时隙号与寄存器2303中存储的时隙号信息,并且判断指针2304接下来应该指示哪一个时隙。控制器2301基于该判断控制指针2304。参见图24和25,进一步详细说明控制器2301对指针2304的控制。在图24所示的示例中,最高优先级是“4”,主控器(A)中的当前优先级是“3”,并且在寄存器2303中存储的信息中,主控器(B)的当前优先级是“2”。进一步地,在优先级表2306中,主控器(A)在时隙号1-4中被设为优先,而主控器(B)在时隙号5-8中被设为优先。在没有优先级改变的情况下,指针2304指示如图25中所示的时隙号。更具体地,如图25-a、25-b和25-C中所示,指针2304依照主控器(A)的优先级“3”顺序地指示时隙号1、2和3。接下来,主控器2304判断主控器(A)的优先级已经用完并且跳到时隙号5(25-d),以改变到主控器(B)的优先级。然后,指针2304依照主控器(B)的优先级2顺序地指示时隙号5和6(25-d和25-e)。接下来,主控器2304判断主控器(B)的优先级已经用完并且跳回到时隙号1(25-f),以改变到主控器(A)的优先级。控制器2301控制指针2304的上述操作。由于如此控制指针2304的操作,重复其中主控器(A)被连续三次设为优先然后主控器(B)被连续两次设为优先的周期。在有任何优先级改变的情况下,控制器2301以这样的方式控制操作假如指针2304所指示时隙的被设为优先的主控器与在改变优先级时被改变的优先级中的主控器一致,则在下一个周期中和以后采用改变的优先级。另一方面,在它们彼此不一致时,在改变将被设为优先的主控器时和改变将被设为优先的主控器以后采用改变的优先级。下面说明总线仲裁管理单元2305在指示的时隙号为2并且主控器(A)被设为优先的情况下,把主控器(A)的优先级从“3”改为“2”的示例。如图26中所示,因为在时隙号2中主控器(A)被设为优先,遵循当前的优先级,直到周期重复完成。更具体地,在时隙号2(26-(b))后,指针2304依照当前优先级来指示时隙号3(26-c),然后跳到时隙号5,并且从此以后顺序地指示时隙号5和6(26-d和26-e)。然后,相关周期终止。接下来,假定在指针2304跳到时隙号1(26-f)时和在指针2304跳到时隙号1(26-f)以后应用改变的优先级,主控器(A)的优先级被改变为“2”,并且当时主控器(B)的优先级改变为“2”。因此,由指针2304指示的时隙是1、2、5、...(26-f、26-g、26-h、...)的周期被重复,直到优先级被改变。下面参照图27说明在指示的时隙号是2并且总线主控器(A)被设为优先时,把优先级从“2”改变为“3”的示例。在此示例中,在指针2304指示主控器(B)被设为优先的下一个时隙位置时和以后应用改变的优先级。更具体地,在指针指示时隙号1、2、3(27-(a)、27-(b)和27-(c))后,指针以这样的方式被控制作为在将被设为优先的总线主控器被切换时和以后(在将被设为优先的总线主控器从总线主控器(A)改变为总线主控器(B)时)应用改变的优先级的结果,将时隙号指示为5、7、7、1、2、...(26-d、26-e、26-f、26-g、26-h、...),而不是时隙号5、6、1。如所描述的,跳转指针2304来改变指示的时隙,以变改变优先级而非如实施例1-8中所述的更新优先级表。根据结构,可以节省更新优先级表的努力,并且可以在更短时间段内优化总线仲裁中的优先级。构造高速缓冲存储器命中率测量单元,并且各个元件的操作与实施例2中描述的相同。作为执行实施例1-9中详细说明的步骤的结果,可以基于高速缓冲存储器命中率来实时地获取总线仲裁中的优先级,并且由此可以执行最优的总线仲裁。除非另外指出,实施例中总线主控器中使用的传输方法是突发传输。实施例1-9中说明的操作不必彼此独立,而是可以被灵活地组合并执行。尽管已经说明目前考虑的本发明优选实施例,应该理解,可以在其中做出各种修改,并且意欲在所附的权利要求中包括所有落入本发明的真正精神和范围内的如此修改。权利要求1.一种半导体装置,包括至少两个总线主控器;高速缓冲存储器命中率测量设备;和总线仲裁设备,其中该总线主控器中的每一个都包括用于暂时存储在它们自身和至少一个资源之间被发送和接收的数据的高速缓冲存储器,并且所述总线主控器通过至少一条总线共享该资源,该高速缓冲存储器命中率测量设备计算向被包括在所述总线主控器的至少一个中的高速缓冲存储器所做的访问中的命中率,并且该总线仲裁设备基于由该高速缓冲存储器命中率测量设备计算的命中率,在所述总线主控器和资源之间执行总线仲裁。2.如权利要求1所述的半导体装置,其中该高速缓冲存储器命中率测量设备基于该命中率,产生用于所述总线主控器的总线优先级降低请求或总线优先级升高请求,并把所产生的请求输出给该总线仲裁设备,并且该总线仲裁设备基于该降低请求或升高请求,在所述总线主控器和资源之间执行总线仲裁。3.如权利要求2所述的半导体装置,其中该高速缓冲存储器命中率测量设备包括高速缓冲存储器访问记录单元,用于记录关于该高速缓冲存储器访问是否为命中或错误的信息;第一对应关系存储单元,用于存储被记录在该高速缓冲存储器访问记录单元中的信息与该降低请求或升高请求之间的第一对应关系;和判断单元,用于从该第一对应关系存储单元中读取与被记录在该高速缓冲存储器访问记录单元中的信息相对应的该降低请求或升高请求,并把读取到的请求输出给该总线仲裁设备,其中该总线仲裁设备基于从该判断单元中提供的降低请求或升高请求,在所述总线主控器和资源之间执行总线仲裁。4.如权利要求2所述的半导体装置,其中该高速缓冲存储器命中率测量设备包括高速缓冲存储器访问记录单元,用于记录关于该高速缓冲存储器访问是否为命中或错误的信息;和预测单元,用于基于被记录在该高速缓冲存储器访问记录单元中的信息,预测下一次高速缓冲存储器访问的命中或错误,并基于该预测的结果,把该总线优先级降低请求或总线优先级升高请求输出给该总线仲裁设备;并且该总线仲裁设备基于从该预测单元中提供的降低请求或升高请求,在所述总线主控器和资源之间执行总线仲裁。5.如权利要求4所述的半导体装置,其中每当发生该高速缓冲存储器访问时,该高速缓冲存储器访问记录设备更新关于该高速缓冲存储器访问是否为命中或错误的信息。6.如权利要求2所述的半导体装置,其中该总线仲裁设备包括优先级存储单元,用于存储该总线优先级;总线仲裁管理单元,用于基于该降低请求或升高请求,改变被存储在该优先级存储单元中的总线优先级;和总线仲裁单元,用于基于从该优先级存储单元中读取到的总线优先级,在所述总线主控器和资源之间执行总线仲裁。7.如权利要求1所述的半导体装置,其中该高速缓冲存储器命中率测量设备包括高速缓冲存储器访问记录单元,用于记录关于该高速缓冲存储器访问是否为命中或错误的历史信息;和第二对应关系存储单元,用于存储被记录在该高速缓冲存储器访问记录单元中的历史信息和该高速缓冲存储器访问的命中率之间的第二对应关系,并且该高速缓冲存储器命中率测量设备从该第二对应关系存储单元中读取与被记录在该高速缓冲存储器访问记录单元中的历史信息相对应的命中率,并把读取到的命中率输出给该总线仲裁设备,并且该总线仲裁设备基于从该高速缓冲存储器命中率测量设备中提供的命中率,在所述总线主控器和资源之间执行总线仲裁。8.如权利要求6所述的半导体装置,其中该总线仲裁设备进一步包括第三对应关系存储单元,用于存储该命中率和总线优先级之间的第三对应关系,并且该总线仲裁设备从该第三对应关系存储单元中读取与从该高速缓冲存储器命中率测量设备中提供的命中率相对应的总线优先级,并基于读取到的总线优先级,在所述总线主控器和资源之间执行总线仲裁。9.如权利要求7所述的半导体装置,其中该高速缓冲存储器命中率测量设备从该第二对应关系存储单元中读取向被包括在所述至少两个总线主控器中的高速缓冲存储器所做的访问中的命中率;该总线仲裁设备进一步包括第四对应关系存储单元,用于存储所述至少两个总线主控器中的命中率组合与所述至少两个总线主控器中的总线优先级组合之间的第四对应关系;并且该总线仲裁设备从该第四对应关系存储单元中读取与从该高速缓冲存储器命中率测量设备中提供的命中率组合相对应的总线优先级组合,并基于读取到的总线优先级组合,在所述总线主控器和资源之间执行总线仲裁。10.如权利要求7所述的半导体装置,进一步包括多个高速缓冲存储器访问记录单元;和选择单元,用于任意地选择所述多个高速缓冲存储器访问记录单元中的任何一个。11.如权利要求10所述的半导体装置,进一步包括电流调整单元,用于限制关于除了由该选择单元选择的高速缓冲存储器访问记录单元之外的该高速缓冲存储器访问记录单元的电流供应。12.如权利要求8所述的半导体装置,进一步包括多个第三对应关系存储单元;和选择单元,用于任意地选择所述多个第三对应关系存储单元中的任何一个。13.如权利要求12所述的半导体装置,进一步包括电流调整单元,用于限制关于除了由该选择单元选择的第三对应关系存储单元之外的该第三对应关系存储单元的电流供应。14.如权利要求1所述的半导体装置,其中该高速缓冲存储器命中率测量设备进一步包括初始化单元,用于在检测到由所述总线主控器执行的进程中的变化或中断信号时,初始化该高速缓冲存储器命中率测量设备。15.如权利要求1所述的半导体装置,其中该高速缓冲存储器命中率测量设备进一步包括传输方法检测单元,用于检测所述总线主控器的传输方法,并将该检测的结果通知给该总线仲裁设备;并且该总线仲裁设备基于由该传输方法检测单元通知的传输方法,对该总线仲裁做出另外的调整。16.如权利要求2所述的半导体装置,其中该总线仲裁设备包括多个存储单元,用于以表格格式信息的形式存储该总线优先级;和指示器,用于指示指定点,该指定点用于依照该高速缓冲存储器命中率测量设备计算的命中率,读取该优先级存储单元中的表格;并且该总线仲裁设备依照该指示器的指示,从该优先级存储单元中读取该总线优先级,并由此在所述总线主控器和资源之间执行总线仲裁。17.一种用于半导体装置的总线仲裁方法,该半导体装置包括至少两个总线主控器;高速缓冲存储器命中率测量设备;和总线仲裁设备,其中所述总线主控器中的每一个都包括用于暂时存储在它们自身和至少一个资源之间被发送和接收的数据的高速缓冲存储器,并且通过至少一条总线共享该资源,该总线仲裁方法包括计算步骤,用于计算向被包括在所述总线主控器的至少一个中的高速缓冲存储器所做的访问中的命中率;和仲裁步骤,用于基于计算出的命中率,在所述总线主控器和资源之间执行总线仲裁。18.如权利要求17所述的用于半导体装置的总线仲裁方法,其中在该计算步骤中,基于计算出的命中率,用于所述总线主控器的总线优先级降低请求或总线优先级升高请求被产生;并且在该仲裁步骤中,基于该降低请求或升高请求,在所述总线主控器和资源之间执行总线仲裁。19.如权利要求18所述的用于半导体装置的总线仲裁方法,其中该计算步骤进一步包括高速缓冲存储器访问记录步骤,用于记录关于该高速缓冲存储器访问是否为命中或错误的信息;第一对应关系存储步骤,用于预先存储在该高速缓冲存储器访问记录步骤中被记录的信息与该降低请求或升高请求之间的第一对应关系;和判断步骤,用于从该第一对应关系中读取对应于该信息的降低请求或升高请求,并且在该仲裁步骤中,基于在该判断步骤中读取到的该降低请求或升高请求,在所述总线主控器和资源之间执行总线仲裁。20.如权利要求18所述的用于半导体装置的总线仲裁方法,其中该计算步骤包括高速缓冲存储器访问记录步骤,用于记录关于该高速缓冲存储器访问是否为命中或错误的信息;和预测步骤,用于基于该信息,预测下一次高速缓冲存储器访问的命中或错误,并基于该预测的结果,输出该总线优先级降低请求或总线优先级升高请求;并且在该仲裁步骤中,基于在该预测步骤中被输出的该降低请求或升高请求,在该总线主控器和资源之间执行总线仲裁。21.如权利要求19所述的用于半导体装置的总线仲裁方法,其中在该高速缓冲存储器访问记录步骤中,每当发生该高速缓冲存储器访问时,关于该高速缓冲存储器访问是否为命中或错误的信息被更新。22.如权利要求18所述的用于半导体装置的总线仲裁方法,其中该仲裁步骤包括基于该总线优先级降低请求或总线优先级升高请求来改变该总线优先级的步骤;和基于该被改变的总线优先级在所述总线主控器和资源之间执行总线仲裁的步骤。23.如权利要求17所述的用于半导体装置的总线仲裁方法,其中该计算步骤包括记录关于该高速缓冲存储器访问是否为命中或错误的历史信息的步骤;和记录该高速缓冲存储器访问的命中率与该历史信息之间的第二对应关系的步骤;并且在该计算步骤中,从该第二对应关系中读取对应于该历史信息的命中率,和在该仲裁步骤中,基于在该计算步骤中读取到的命中率,在所述总线主控器和资源之间执行总线仲裁。24.如权利要求23所述的用于半导体装置的总线仲裁方法,其中该仲裁步骤进一步包括用于存储该命中率与总线优先级之间的第三对应关系的步骤;并且在该仲裁步骤中,从该第三对应关系中读取与在该计算步骤中读取到的命中率相对应的总线优先级,并基于读取到的总线优先级,在所述总线主控器和资源之间执行总线仲裁。25.如权利要求23所述的用于半导体装置的总线仲裁方法,其中在该计算步骤中,从该第二对应关系中读取向被包括在所述至少两个总线主控器中的高速缓冲存储器所做的访问中的命中率;该仲裁步骤进一步包括存储所述至少两个总线主控器中的命中率组合与所述至少两个总线主控器中的总线优先级组合之间的第四对应关系的步骤;并且在该仲裁步骤中,从该第四对应关系中读取与在该计算步骤中读取到的命中率组合相对应的总线优先级组合,并基于读取到的总线优先级组合,在所述总线主控器和资源之间执行总线仲裁。26.如权利要求17所述的用于半导体装置的总线仲裁方法,其中该计算步骤进一步包括初始化步骤,用于在检测到由所述总线主控器执行的进程中的变化或中断信号时,初始化该高速缓冲存储器命中率测量设备。27.如权利要求17所述的用于半导体装置的总线仲裁方法,其中该计算步骤进一步包括传输方法通知步骤,用于检测和通知该总线主控器的传输方法,和在该仲裁步骤中,基于在该传输方法通知步骤中被通知的传输方法,对该总线仲裁做出另外的调整。全文摘要基于高速缓冲存储器命中率改变总线仲裁中的访问优先级,以执行该总线仲裁。为了执行该总线仲裁,高速缓冲存储器命中率测量设备检查总线主控器的高速缓冲存储器访问状态。总线仲裁管理设备基于从该高速缓冲存储器命中率测量设备输出的信息,改变优先级存储设备中的优先级。然后,总线仲裁设备根据该优先级执行该总线仲裁。文档编号G06F12/08GK1808412SQ20061000210公开日2006年7月26日申请日期2006年1月12日优先权日2005年1月17日发明者前田刚志,住田守,木冈卓二申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1