处理器和方法与流程

文档序号:12733573阅读:191来源:国知局
处理器和方法与流程

本公开涉及一种处理器和方法,并且涉及一种具有片上网络(NOC)系统的处理器和方法。



背景技术:

片上系统(SOC)是将各种硬件模块/装置(诸如,处理器、硬件加速器、存储器等)集成在单个芯片中的集成电路(IC)。片上通信介质通常用于在硬件装置之间发送和接收数据。片上网络(NOC)系统是这样的技术:在芯片内部放置用于转发数据传输的路由器,以允许在芯片内以及在这样的硬件装置之间的分布式的数据传输。



技术实现要素:

一个或多个实施例包括一种处理器,所述处理器包括:源处理装置,被配置为识别数据,以向另一装置请求;目的处理装置,被配置为响应于使用基于信用的流控制的来自源处理装置的针对识别的数据的请求,使用基于信用的流控制将识别的数据发送给源处理装置,其中,源处理装置包括用于基于信用的流控制的信用缓冲器,信用缓冲器被分配为包括高速缓存区域,其中,高速缓存区域被配置为高速缓存由源处理装置接收的发送的识别的数据。

源处理装置可基于确定识别的数据是否被存储在高速缓存区域中,选择性地设置高速缓存区域的写索引值,以指示高速缓存区域的哪个下一条目存储由源处理装置下一请求并且接收的数据。

源处理装置还可包括:标签匹配器,被配置为在识别的数据的地址和与在高速缓存区域中高速缓存的数据对应的标签之间,执行标签匹配确定,以确定识别的数据是否被存储在高速缓存区域中。

当标签匹配确定指示高速缓存未命中时,源处理装置可增加高速缓存区域的当前写索引值。

源处理装置可在发生高速缓存未命中时,基于当前写索引值,将发送的识别的数据高速缓存在高速缓存区域中,然后执行当前写索引值的增加,以指示下一接收的数据将被高速缓存在高速缓存区域中的哪里。

当数据被高速缓存在信用缓冲器的分配给高速缓存区域的所有条目中,并且存在写索引值能够被增加来表示的信用缓冲器的可用条目时,源处理装置可删除在高速缓存区域中分配的条目之中的高速缓存区域的初始条目中高速缓存的数据,并且根据基于信用的流控制将信用许可发送给目的处理装置。

随着在高速缓存区域的初始条目中高速缓存的数据的删除,处理器还可重新分配高速缓存区域,以不再包括初始条目,并且新包括与增加的当前写值对应的信用缓冲器的条目。

当数据被高速缓存在信用缓冲器的分配给高速缓存区域的所有条目中,并且在不存在写索引值能够被增加来表示的信用缓冲器的可用条目的同时发生高速缓存未命中时,源处理装置可初始化写索引值以表示信用缓冲器的初始条目。

当处理器初始化写索引值时,处理器可重新分配高速缓存区域,以包括信用缓冲器的初始条目。

源处理装置可自动地发送针对识别的数据的请求,并且源处理装置还可被配置为包括标签匹配器,标签匹配器被配置为在与在高速缓存区域中高速缓存的数据对应的标签和由源处理装置接收的发送的识别的数据之间,执行标签匹配确定,以确定识别的数据是否被存储在高速缓存区域中。

源处理装置还可包括:请求先入先出(FIFO)缓冲器,被配置为:存储识别的数据的地址和与在高速缓存区域中高速缓存的数据对应的标签之间的标签匹配确定的结果;控制器,被配置为:当存储的标签匹配确定的结果是高速缓存命中时,执行控制以使用指示高速缓存区域的哪个条目包括识别的数据的命中索引,来读取在高速缓存区域中高速缓存的数据,并且在存储的标签匹配确定的结果是高速缓存未命中时,执行控制以增加高速缓存区域的当前写索引值。

当在数据被高速缓存在信用缓冲器的分配给高速缓存区域的所有条目中的同时发生高速缓存未命中时,控制器可执行控制,以根据基于信用的流控制将信用许可发送给目的处理装置。

源处理装置和目的处理装置中的至少一个可以是集成在处理器中的路由器或知识产权(IP)。

处理器可使用片上网络(NOC)系统,在包括源处理装置和目的处理装置的多个装置之间收发数据。

信用缓冲器中的高速缓存区域的位置可以是变化的。

一个或多个实施例包括一种使用处理器处理数据的方法,所述方法包括:由源处理装置识别数据,以向另一装置请求;由目的处理装置,响应于使用基于信用的流控制的来自源处理装置的针对识别的数据的请求,将识别的数据发送给源处理装置;在源处理装置的信用缓冲器的选择性地分配的部分中,高速缓存由源处理装置接收的发送的识别的数据。

所述方法还可包括:从信用缓冲器的所有部分选择性地分配高速缓存区域。

源处理装置可基于确定识别的数据是否被存储在高速缓存区域中,选择性地设置高速缓存区域的写索引值,以指示高速缓存区域的哪个下一条目存储由源处理装置下一接收的数据。

所述方法还可包括:在识别的数据的地址和与在高速缓存区域中高速缓存的数据对应的标签之间,执行标签匹配确定。

当标签匹配确定指示高速缓存未命中时,所述方法还可包括:增加高速缓存区域的当前写索引值。

发送的步骤可包括:基于指示高速缓存未命中的标签匹配确定,将识别的数据发送给源处理装置,高速缓存发送的识别的数据的步骤可包括:将由源处理装置接收的发送的数据高速缓存在与当前写索引值对应的高速缓存区域的选择条目中,然后执行当前写索引值的增加。

所述方法还可包括:当数据被高速缓存在信用缓冲器的分配给高速缓存区域的所有条目中时,删除在高速缓存区域的初始条目中高速缓存的数据;当在所述初始条目中高速缓存的数据被删除时,根据基于信用的流控制将信用许可发送给目的处理装置。

当在不存在写索引值能够被增加来表示的信用缓冲器的可用条目的同时发生高速缓存未命中时,所述方法可包括:初始化写索引值以表示信用缓冲器的初始条目,并且重新分配高速缓存区域以包括所述初始条目。

所述方法可包括:存储识别的数据的地址和与在高速缓存区域中高速缓存的数据对应的标签之间的标签匹配确定的结果;当存储的标签匹配确定的结果是高速缓存命中时,执行控制以使用指示高速缓存区域的哪个条目包括识别的数据的命中索引,来读取在高速缓存区域中高速缓存的数据,或者当存储的标签匹配确定的结果是高速缓存未命中时,执行控制以增加高速缓存区域的当前写索引值。

一个或多个实施例可包括一种处理器,所述处理器包括:包括第一数据处理装置和第一信用缓冲器的第一处理装置,第一数据处理装置被配置为:执行数据的第一处理,以将第一处理的结果存储在第一信用缓冲器中,并且识别第一数据,以向包括第二处理装置的多个处理装置中的任意处理装置请求;包括第二数据处理装置和第二信用缓冲器第二处理装置的,第二数据处理装置被配置为:执行数据的第二处理,以将第二处理的结果存储在第二信用缓冲器中,识别第二数据,以向包括第一处理装置的所述多个处理装置中的任意处理装置请求。

当第一处理装置使用基于信用的流控制,向第二处理装置请求第一数据时,第一处理装置可使用第一信用缓冲器的选择性地分配的第一高速缓存区域来高速缓存从第二处理装置的第二信用缓冲器接收的对应的数据,当第二处理装置使用基于信用的流控制向第一处理装置请求第二数据时,第二处理装置可使用第二信用缓冲器的选择性地分配的第二高速缓存区域来高速缓存从第一处理装置的第一信用缓冲器接收的对应的数据。

当第一处理装置使用第一信用缓冲器中的选择性地分配的第一高速缓存区域,来高速缓存从第二处理装置的第二信用缓冲器接收的对应的数据时,第一处理装置的第一数据处理装置可使用高速缓存的从第二处理装置的第二信用缓冲器接收的对应的数据,来执行处理操作,当第二处理装置使用第二信用缓冲器中的选择性地分配的第二高速缓存区域,来高速缓存从第一处理装置的第一信用缓冲器接收的对应的数据时,第二处理装置的第二数据处理装置可使用高速缓存的从第一处理装置的第一信用缓冲器接收的对应的数据,来执行处理操作。

在下面的描述中将会部分地阐述另外的方面,部分通过描述将是清楚的,或者可通过呈现的实施例中的一个或多个实施例的实践而获知。

附图说明

通过下面结合附图对实施例进行的描述,这些和/或其它方面将会变得清楚和更易于理解,其中:

图1是描述根据一个或多个实施例的计算装置的示图;

图2是描述根据一个或多个实施例的处理器内部的任意两个装置的示图;

图3是根据一个或多个实施例的源装置的框图;

图4是描述根据一个或多个实施例的在源装置与目的装置之间执行的基于信用的流控制(credit-based flow control)的示图;

图5是描述根据一个或多个实施例的在源装置和目的装置之间使用基于信用的流控制的数据通信的示图;

图6是描述根据一个或多个实施例的信用缓冲器中的高速缓存区域的分配的示图;

图7是描述根据一个或多个实施例的在高速缓存命中的情况下高速缓存区域中的数据访问的示图;

图8是描述根据一个或多个实施例的在高速缓存未命中的情况下高速缓存区域中的数据高速缓存的示图;

图9是描述根据一个或多个实施例的在高速缓存未命中的情况下高速缓存区域中的数据高速缓存的示图;

图10是描述根据一个或多个实施例的在高速缓存未命中的情况下高速缓存区域中的数据高速缓存的示图;

图11是根据一个或多个实施例的使用源装置的信用缓冲器中的高速缓存区域的高速缓存数据的方法的详细流程图;

图12是描述根据一个或多个实施例的在源装置和目的装置之间使用基于信用的流控制的数据通信的示图;

图13是根据一个或多个实施例的处理器的数据处理方法的流程图。

具体实施方式

提供下面的详细描述,以帮助读者获得对这里描述的方法、设备和/或系统的全面理解。然而,这里描述的方法、设备和/或系统的各种改变、变形和等同物对于本领域普通技术人员而言将是清楚的。对于本领域普通技术人员而言将会清楚的是,除了必须按照特定次序发生的操作之外,这里描述的操作的顺序仅是示例,并且不限于这里阐述的顺序,而是可改变操作的顺序。此外,为了更加清楚和简洁,可省略本领域普通技术人员公知的功能和构造的描述。

如这里所使用,术语“和/或”包括一个或多个相关所列项的任何和所有组合。当诸如“……中的至少一个”的表述位于元件的列表之后时,该表述修饰整个列表的元件,而非修饰列表中的单个元件。另外,考虑实施例的示例性元件和操作,在实施例中使用的术语已被选择为目前广泛地使用的通用术语,而在但是可在全面理解本公开之后根据本领域技术人员的意图、传统惯例或新技术的引入来改变通用术语。此外,如果存在由申请人在特定情况下任意选择的术语,则在这种情况下,将在实施例的对应描述部分中详细地描述该术语的含义。因此,应该基于实施例的全部内容而非每个术语的简单的名称来定义术语。

在描述不同实施例的各方面或元件的情况下使用的单数术语以及类似的名词将被解释为指示包括单数和复数的方面或元件的实施例是可用的。另外,除非这里另外指示,否则这里的值的范围的叙述仅意在用作个别地表示落在该范围内的每个单独的值的速记法,并且每个单独的值被包括在本说明书中,如它在这里被个别地叙述。

在下面对实施例的描述中,当一个部分(即,硬件元件、装置等)被称为“连接”到另一部分(即,硬件元件,装置等)时,应该理解,前者可“直接地连接”到后者,或通过中间部分(即,中间硬件元件、中间装置等)“以电气方式连接”到后者。此外,诸如这里描述的“单元”、“模块”和“装置”的每个术语被定义为被配置为执行至少一个操作的硬件元件,诸如,一个或多个处理装置或其它对应的硬件装置。

这里在具体实施方式中使用的术语“包括”和“包含”不应该被解释为意味着分别公开的所有元件或操作总是被包括在所有实施例中,而是应该被解释为指示元件或操作中的一些可不被包括在替代实施例中,和/或额外的元件或操作可被包括在相同或替代实施例中。

可以以不同形式来实现这里描述的特征,并且不应该被解释为受限于这里描述的示例。相反地,已经提供这里描述的示例,使得本公开将是彻底和完整的,并且将会将本公开的全部范围传达给本领域普通技术人员。

图1是描述根据一个或多个实施例的计算装置的示图。

参照图1,作为一个示例,计算装置1包括:中央处理单元(CPU)10、图形处理单元(GPU)20、存储器30、输入/输出(I/O)接口40、网络接口50和片上网络(NOC)60。在图1中,方便用于图1的描述的元件被示出为被包括在计算装置1中,但本领域技术人员应该理解,其它通用元件可被另外或者替代地包括于图1中示出的元件。

计算装置1的示例包括(但不限于):台式计算机、笔记本计算机、智能电话、个人数字助手(PDA)、移动多媒体播放器、视频游戏机、电视机顶盒、平板装置、电子书阅读器、可穿戴装置等。也就是说,计算装置1是具有处理能力的装置,并且可包括各种装置。

CPU 10和GPU 20是处理并且执行将要在计算装置1中执行的各种操作的硬件组件。

存储器30是这样的硬件组件:存储在计算装置1中处理的各种类型的数据,存储通过计算装置1处理的各种类型的数据,以及存储从计算装置1产生的各种类型的数据。例如,存储器30可存储已被处理的数据、将要被处理的数据和在CPU 10和GPU 20的这种处理期间依赖的数据。另外,存储器30可存储将要由CPU 10和GPU 20运行的应用、驱动程序和操作系统(OS)。存储器30或其它非暂时性介质可存储处理器可读代码,以控制任意处理装置执行这里描述的任意方法或处理。存储器30可包括:随机存取存储器(RAM)(诸如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)等)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、紧凑型盘ROM(CD-ROM)、蓝光(Blu-ray)、其它光盘存储器、硬盘驱动(HDD)、固态驱动(SSD)或闪存,并且还可包括计算装置1可访问的另一外部非暂时性存储装置。

I/O接口40是这样的硬件部件:从连接到计算装置1或在I/O接口40提供的装置(诸如,键盘、鼠标等)(通过所述装置,用户可输入想要的信息)接收用户的输入信息,或者将计算装置1的处理信息发送给连接到I/O接口40或计算装置1的显示装置,或者发送给在I/O接口40或计算装置1中提供的显示装置,以在显示装置上显示由计算装置1处理的信息。

网络接口50是硬件组件,通过该硬件组件,计算装置1可以以有线和/或无线方式与外部网络进行通信,并且网络接口50可包括各种有线或无线硬件通信模块/装置,诸如,以太网模块、Wi-Fi模块、Bluetooth模块、近场通信(NFC)模块等。

NOC 60是,例如,可被实现在半导体芯片中或被实现为半导体芯片的硬件通信系统,该硬件通信系统将计算装置1中的硬件组件彼此连接,以在硬件组件之间收发数据。换句话说,NOC 60可表示可通过经一个或多个路由器将多个知识产权(IP)联网来处理数据的技术。这里,IP可对应于半导体芯片的一个或多个处理器核、一个或多个硬件加速器、一个或多个路由器等或其任意组合。另外,IP可表示处理器的硬件单元、存储器的预定义的硬件单元等。在一个实施例中,IP还可以是半导体芯片的可重构处理器的单独的硬件功能元件,或片上系统(SoC)半导体芯片,并且NOC 60可与具有路由器的半导体芯片集成,以在功能元件和/或本地存储器、全局存储器或外部存储器之间共享数据。因此,仅作为一个示例并且为了解释的方便,图1示出可通过NOC 60执行CPU 10、GPU 20、存储器30、I/O接口40和网络接口50之间的数据通信。

除了硬件组件之间的数据通信之外,这些硬件组件中的一些硬件部件内部的硬件模块/装置可使用NOC执行这样的装置之间的内部或本地数据通信。在计算装置1中,诸如,作为在处理装置(诸如,CPU 10和GPU 20)中包括的其它硬件处理元件的装置或核可使用NOC执行数据通信。也可使用NOC来实现计算装置1中的除了CPU 10和GPU 20之外的其余硬件组件。在计算装置1中使用NOC实现的硬件组件的数量可变化。

图2是描述根据实施例的处理器内部的任意两个装置的示图。根据实施例,处理器可表示图1中示出的CPU 10或GPU 20,但不限于此。例如,处理器可表示存储器30中所包括的处理单元(例如,存储器控制器)或网络接口50中所包括的处理单元。例如,源装置210将被描述为这样的处理器部分的生成数据请求的IP装置,并且目的装置220将被描述为这样的处理器部分的在从源装置210接收到数据请求时向源装置210发送数据的IP装置。

源装置210可将从目的装置220接收的数据存储在信用缓冲器215中。这里,可为了各种目的(诸如,数据缓冲或数据高速缓存)来执行将接收的数据存储在信用缓冲器215中。

例如,源装置210和目的装置220中的每一个可对应于特定处理器中的各个IP,诸如,处理器核、硬件加速器和路由器。为了解释的方便,以下参照图3-图13的讨论可表示图2的这样的源装置210、目的装置220和信用缓冲器215,但应该理解,这样的各个实施例不限于此。例如,应该理解,这样的各个实施例可包括另外的和/或替代的组件或用于其的其它通用元件。

图3是根据一个或多个实施例的源装置的框图。

参照图3,源装置210可包括,例如,数据处理单元211、信用缓冲器215、标签匹配器212、请求先入先出(FIFO)缓冲器213和控制器214。为了解释的方便,以下关于图4-图13的讨论可参照图3的数据处理单元211、信用缓冲器215、标签匹配器212、请求FIFO缓冲器213和控制器214中的任意,但应该理解,这样的各个实施例不限于此。例如,应该理解,这样的各个实施例可包括另外的和/或替代的组件或用于其的其它通用元件。

数据处理单元211识别将被处理的数据,并且生成针对识别的将被处理的数据的请求。将被处理的数据可以是数据处理单元211执行一个或多个特定操作或一般操作所需的数据。仅作为示例,数据请求可具有各种类型,诸如,将从其读取数据的地址数据请求类型,或数据的签名数据请求类型。

信用缓冲器215可缓冲,例如,已被数据处理单元211处理的数据或将要被数据处理单元211处理的数据。另外,用于数据高速缓存的高速缓存区域217可以是信用缓冲器215的设置/分配的部分。例如,根据信用缓冲器215的其它用途或针对高速缓存区域217的另外的或更少的高速缓存条目的需要,高速缓存区域217可以是信用缓冲器215的动态分配的区域。例如,信用缓冲器215可具有N个可用条目,并且那些N个可用条目中的K个条目可被分配作为高速缓存区域217。在信用缓冲器215内分配/实现的高速缓存区域217可被用作执行与由外部高速缓存执行的功能类似的功能的区域。也就是说,在一个实施例中,利用高速缓存区域217,源装置210可不包括或不使用与信用缓冲器215分开的或位于源装置210外部的用于存储从目的装置220接收的数据的独立高速缓存。通过分配执行与信用缓冲器215内的高速缓存执行的功能类似的功能的高速缓存区域217,与使用这样的分开的高速缓存的情况相比,数据处理单元211可以能够实现更快的数据访问。例如,如果源装置210仅具有独立于信用缓冲器215实现的高速缓存,则信用缓冲器215可简单地存储数据,并且仅执行将数据处理单元211需要的数据复制到高速缓存中的功能。然而,利用独立于信用缓冲器215实现的这样的高速缓存,在信用缓冲器215与独立高速缓存之间存在大量的通信量(traffic),所述大量的通信量导致消耗不必要的带宽,这浪费了缓冲器能量。相反地,根据一个或多个实施例,当使用信用缓冲器215实现具有与这样的外部高速缓存的功能类似的功能的高速缓存区域217时,减少了信用缓冲器215与高速缓存的数据之间的数据通信量,这意味着:与在高速缓存独立于信用缓冲器215或源装置210时发生的带宽浪费相比,可能不会不必要地浪费带宽。

标签匹配器212在将被请求的数据的地址和与高速缓存区域217中高速缓存的数据对应的标签之间,执行标签匹配。当数据被高速缓存在高速缓存区域217中时,用于识别数据地址的标签(例如,与存储在目的装置220中的标签一样)也可被映射到高速缓存区域217中的已经高速缓存的数据。因此,标签匹配器212可使用标签来识别将被请求的数据是否已经被高速缓存在高速缓存区域217中。

当标签匹配的结果是将被请求的数据被确定为被高速缓存在高速缓存区域217中时,标签匹配器212确定或指示高速缓存命中。当标签匹配的结果是将被请求的数据被确定为未被高速缓存在高速缓存区域217中时,标签匹配器212确定或指示高速缓存未命中。

请求FIFO缓冲器213存储标签匹配的结果。也就是说,当确定高速缓存命中时,请求FIFO缓冲器213可存储指示高速缓存区域217中的对应的命中条目的各个命中索引或命中标记,并且当确定高速缓存未命中时,请求FIFO缓冲器213可存储未命中标记。

根据标签匹配器212的标签匹配的结果,例如,根据FIFO缓冲器213中的存储的命中指示符或未命中指示符,控制器214控制利用信用缓冲器215的高速缓存区域217的数据读/写操作,或控制在信用缓冲器215的高速缓存区域217中的数据读/写操作。更具体地讲,当存储在请求FIFO缓冲器213中的标签匹配的结果是高速缓存命中时,控制器214执行控制,以读取在高速缓存区域217的条目(例如,在由存储在FIFO缓冲器213中的命中索引识别的高速缓存区域217的条目)中高速缓存的数据。当存储的标签匹配的结果是高速缓存未命中时,控制器214执行控制,以增加高速缓存区域217的写索引值。根据一个或多个实施例,当新的数据将被高速缓存在高速缓存区域217中时,写索引是用于指示接收的数据应该被写入到高速缓存区域217的哪个条目的信息。例如,写索引值可具有与信用缓冲器215的特定条目对应的值,或者更具体地讲,写索引值可具有与在信用缓冲器215中分配的高速缓存区域217的特定条目对应的值。另外,控制器214可控制将信用许可(credit grant)发送给目的装置220。

如上所述,在一个或多个实施例中,源装置210包括信用缓冲器215,以便使用基于信用的流控制与另一装置(例如,目的装置220)收发数据。在这样的实施例中,已描述在使用NOC实现的处理器中执行使用信用缓冲器215的基于信用的流控制,但不限于此。只要使用这样的信用缓冲器215来执行这样的基于信用的流控制,这样的实施例就也可被应用于在不使用NOC的情况下实现的处理器。

图4是描述根据一个或多个实施例的在源装置与目的装置之间执行的基于信用的流控制的示图。

参照图4,当源装置210向目的装置220请求数据时,目的装置220将请求的数据发送给源装置210。源装置210可将从目的装置220接收的数据存储在信用缓冲器215中。这里,仅作为一个示例,假设:信用缓冲器215是具有一共6个条目的6条目缓冲器(6-entry buffer)。

目的装置220预先知道或了解关于针对源装置210的信用缓冲器215的信用计数(credit count)的信息。针对信用缓冲器215的信用计数是关于可被存储在信用缓冲器215中的条目的信息。由于信用缓冲器215是6条目缓冲器,因此在图4中第一信用计数可以是6。

根据基于信用的流控制,当源装置210向目的装置220请求数据时,目的装置220可发送6个单元(cell)的数据包410。每当接收到每个数据包时,源装置210将指示请求的数据已被存储在信用缓冲器215中的信用420返回给目的装置220。也就是说,源装置210可将一共6个信用420返回给目的装置。每当从源装置210接收到信用420时,目的装置220将信用计数减小1。随着连续地接收到信用420并且针对源装置的信用计数变为零,目的装置220可确定信用缓冲器215已满并且不能再接收数据。这里,目的装置220可包括存储器或寄存器,所述存储器或寄存器基于这样接收的信用以及根据基于信用的流控制,来存储并且增加针对至少源装置的这样的信用计数,所述基于信用的流控制可控制何时将数据发送给源装置210、是否将数据发送给源装置210和/或将多少数据发送给源装置210。

当从信用缓冲器215读取任意数据430并且完成数据430的处理时,可从信用缓冲器215删除数据430。在这种情况下,信用缓冲器215向目的装置220发送信用许可,以便向目的装置220通知:条目空闲。每当目的装置220接收到信用许可时,目的装置220将信用计数增加1。例如,在一个实施例中,如果目的装置220的信用计数大于零,则目的装置220可发送请求的数据,然而当信用计数是零时,目的装置220可缓冲或等待发送请求的数据。

根据上述基于信用的流控制,源装置210和目的装置220可发送并且接收数据。

图5是描述根据一个或多个实施例的在源装置与目的装置之间使用基于信用的流控制的数据通信的示图。

参照图5,源装置210的信用缓冲器215将信用缓冲器215的一些条目分配为高速缓存区域217。信用缓冲器215的高速缓存区域217的位置是可变的。源装置210可将从目的装置220接收的数据高速缓存在信用缓冲器215的高速缓存区域217中。

在S501中,数据处理单元211识别并且生成针对数据的请求。例如,数据处理单元211可通过指定数据的地址来生成针对数据的请求。在一个实施例中,虽然可能生成针对识别的数据的请求,但是当以下在S502中存在高速缓存命中时,针对识别的数据的请求可不被发送给目的装置220。例如,在另一实施例中,诸如,以下参照图12更加详细讨论的,针对识别的数据的请求可被自动地发送给目的装置220。

在S502中,标签匹配器212在将被请求的数据的地址和与在高速缓存区域217中高速缓存的数据对应的标签之间,执行标签匹配。当标签匹配的结果是将被请求的数据被高速缓存在高速缓存区域217中时,标签匹配器212确定高速缓存命中。当标签匹配的结果是将被请求的数据未被高速缓存在高速缓存区域217中时,标签匹配器212确定高速缓存未命中。

在S503中,请求FIFO缓冲器存储识别的数据的地址和与在高速缓存区域217中高速缓存的数据对应的一个或多个标签之间的标签匹配的结果。当确定高速缓存命中时,请求FIFO缓冲器213可存储指示高速缓存区域217中的命中条目的命中索引或命中标记,并且当确定高速缓存未命中时,请求FIFO缓冲器213可存储未命中标记。

在图5中,具有虚线的箭头指示与高速缓存命中对应的操作,具有点划线的箭头指示与高速缓存未命中对应的操作。

在S504中,当存储在请求FIFO缓冲器213中的标签匹配的结果是高速缓存命中时,控制器214执行控制,以使用命中索引读取在高速缓存区域217中高速缓存的数据。

在S505中,数据处理单元211处理从高速缓存区域217读取的数据。也就是说,当确定高速缓存命中时,数据处理单元211的数据请求不被发送或传送给目的装置220,而是在源装置210内处理。

返回到S502,当标签匹配器212的标签匹配的结果是高速缓存未命中时,数据处理单元211的数据请求(例如,生成的针对识别的数据的地址的请求)被发送给目的装置220。

在S504中,当存储在请求FIFO缓冲器213中的标签匹配的结果是高速缓存未命中时,控制器214将从目的装置220接收的数据高速缓存到与当前写索引值对应的条目。然后,控制器214可通过增加高速缓存区域217的写索引值来设置新的写索引。也就是说,源装置210可基于将被请求的数据和高速缓存的数据是否彼此匹配,来设置高速缓存区域217的写索引值。

每当从高速缓存区域217删除在任意条目中高速缓存的数据时,控制器214可向目的装置220发送信用许可。

如上所述,当在源装置210和目的装置220之间执行使用基于信用的流控制的数据通信时,数据处理单元211可通过使用在信用缓冲器215的高速缓存区域217中高速缓存的数据执行数据访问,在没有分开的高速缓存的情况下执行快速数据处理。

这里,应注意,虽然图2-图5的以上示例性讨论可能已经集中于针对可通过源装置210的数据处理元件请求的数据,以及通过目的装置220针对源装置210选择性请求/发送请求的数据的基于信用的流控制的各示例,但需要注意的是,目的装置220可,例如,具有与图3中讨论的源装置210的布置类似的布置,并且可针对可由源装置210选择性地提供给目的装置220的由目的装置220请求的数据,与关于图2-图5的讨论类似的方式进行操作。因此,仅作为一个示例,图3也应该被视为代表目的装置的配置,目的装置可与图2-图5的讨论类似的方式进行操作。另外,根据一个或多个实施例,以下的讨论类似地适用于包括信用缓冲器的目的装置220的操作,该信用缓冲器具有分配的高速缓存区域,其中,分配的高速缓存区域根据基于信用的流程控制高速缓存向其它装置请求的数据。

将参照图6至图10更加详细地描述使用信用缓冲器215的高速缓存区域217的方法。

图6是描述根据一个或多个实施例的信用缓冲器中的高速缓存区域的分配的示图。

参照图6,假设:信用缓冲器215具有一共N个条目(这里,N是自然数)。也就是说,信用缓冲器215可从第0条目到第(N-1)条目存储数据。

信用缓冲器215的全部N个条目中的一些条目可被分配作为高速缓存区域217。例如,假设:K个条目(这里,K是小于N的自然数)被分配作为高速缓存区域217。在高速缓存区域217的第一分配时,第0条目至第(K-1)条目可被分配作为高速缓存区域217,但不限于此。高速缓存区域217的初始开始条目可以不是第0条目,但是这仅是一个示例。

写索引610指向数据的写入完成的条目之后的条目。如图6中所示,当在高速缓存区域217中从第0条目到第(K-2)条目写入所有数据时,写索引610可具有指示第(K-1)条目的写索引值。仅作为一个示例,对应的写索引值可被存储在信用缓冲器215的另一条目(诸如,分配的高速缓存区域217的外部)或源装置210的另一存储器中。

如上所述,根据实施例的源装置210可通过在信用缓冲器215内分配高速缓存区域217,在没有分开的高速缓存(即,在信用缓冲器215外部或在源装置210外部)的情况下,执行数据高速缓存。

图7是描述根据一个或多个实施例的在高速缓存命中的情况下,高速缓存区域中的数据访问的示图。

参照图7,数据处理单元211可在S701中生成特定地址(例如,0x01F)的数据请求。标签匹配器212在S702中执行标签匹配以确定是否存在与请求的数据的地址0x01F匹配的标签。当存在与地址0x01F匹配的标签时,标签匹配器212确定高速缓存命中。因此,命中索引可指示标签0x01F指定或对应于高速缓存区域217中的第二条目。也就是说,针对高速缓存命中,命中索引是指示高速缓存区域217中的哪个条目对应于匹配的标签的信息。与标签对应的高速缓存区域217中的条目是地址0x01F的高速缓存的数据。控制器214读取在高速缓存区域217中的第二条目中高速缓存的地址0x01F的数据。

也就是说,如图7中所述,与信用缓冲器215或源装置210外部的分开的高速缓存被用作用于存储从目的装置220接收的数据的高速缓存的情况相比,在信用缓冲器215的一部分被分配用作高速缓存区域217的情况下,例如,通过在源装置210的信用缓冲器215内分配高速缓存区域217,可以能够实现更快的数据访问。

图8是描述根据一个或多个实施例的在高速缓存未命中的情况下的高速缓存区域中的数据高速缓存的示图。

参照图8,源装置210的数据处理单元211可在S801中生成特定地址(例如,0x08F)的数据请求。标签匹配器212在S802中执行标签匹配以确定是否存在与请求的数据的地址0x08F匹配的标签。由于不存在与地址0x08F匹配的标签,因此标签匹配器212确定高速缓存未命中。因此,目的装置220可被提供有来自源装置210的地址0x08F的数据的请求,或从源装置210接收对地址0x08F的数据的请求。

当从目的装置220接收到地址0x08F的数据时,地址0x08F的数据被高速缓存在与信用缓冲器215的高速缓存区域217的当前写索引值对应的条目中,或者被高速缓存在基于信用缓冲器215的高速缓存区域217的当前写索引值的条目中。在图8中,由于数据已经被高速缓存在第0条目至第(K-4)条目中,因此当前写索引值(即,在写索引增加之前的写索引值)可对应于或指示第(K-3)条目。因此,接收的地址0x08F的数据基于当前写索引值,而被高速缓存在高速缓存区域217的第(K-3)条目中。

由于数据不能再被高速缓存在与当前写索引值对应的第(K-3)条目中,因此控制器214增加或改变写索引,以设置高速缓存区域217的下一个可用条目的新的写索引值,诸如,通过将新的写索引值设置为第(K-2)条目。

换句话说,源装置210(例如,源装置210的控制器214)可基于将被请求的数据和高速缓存的数据是否彼此匹配,来设置高速缓存区域217的写索引值。当发生高速缓存未命中时,源装置210(例如,控制器214)增加高速缓存区域217的写索引值,以指示与下一个请求的数据对应的下一个接收的数据随后应该被存储在高速缓存区域217中的哪里。

图9是描述根据一个或多个实施例的在高速缓存未命中的情况下高速缓存区域中的数据高速缓存的示图。

将在以下参照图9描述这样的情况:数据被高速缓存在以上图8中描述的高速缓存区域217的所有条目(即,第0条目至第(K-1)条目)中。

信用缓冲器215的被分配作为高速缓存区域217的可用条目可被固定为一共K个条目。当数据已被高速缓存在所有的K个条目(即,第0条目至第(K-1)条目)中时,写索引值可被设置或增加以对应于第K条目,但第K条目对应于高速缓存区域217的外部,例如,增加的索引值将会因此表示信用缓冲器215的N个条目中的位于信用缓冲器215的当前分配的高速缓存区域217外部的另一条目。由于这样的写索引值对应于位于高速缓存区域217外部的条目,因此可执行针对高速缓存区域217的新的分配。这是因为,从目的装置220接收的下一个数据可能期望被高速缓存在高速缓存区域217中,但是当前分配的高速缓存区域217的第0条目至第(K-1)条目的所有条目已满。因此,在一个实施例中,在被分配作为高速缓存区域217的K个条目之中的第一条目(例如,第0条目)中高速缓存的数据901可被删除,因此,信用缓冲器215的第一条目至第K条目可被新分配(即,重新分配)作为信用缓冲器215的高速缓存区域217。

这里,由于在这个示例中第K条目是空的,并且已执行针对高速缓存区域217的新的分配,因此高速缓存区域217具有将被高速缓存的空闲条目,因此,信用许可被发送给目的装置220。

图10是描述根据一个或多个实施例的在高速缓存未命中的情况下高速缓存区域中的数据高速缓存的示图。

类似于关于图9的讨论,当写索引值连续地(递增地)增加或改变时,随着更多的数据被高速缓存在高速缓存区域217中,当前写索引值可最终对应于信用缓冲器215的最后一个条目(即,第(N-1)条目)。在这个示例中,高速缓存区域217可被分配一共K个示例性可用条目:N-1至N-K,其中,N大于K并且N是信用缓冲器215中的条目的总数。

当在当前写索引值对应于信用缓冲器215的最后一个条目(即,第(N-1)条目)的同时发生高速缓存未命中时,即在已经基于高速缓存未命中增加或设置写索引值之后,从目的装置220接收的数据1001根据当前写索引值而被高速缓存在第(N-1)条目中。由于数据1001被高速缓存在与当前写索引值对应的条目中,因此当前写索引值应该被增加或设置为用于下一接收的数据的下一高速缓存的新的写索引值。然而,第(N-1)条目对应于信用缓冲器215的最后一个条目,因此,可能无法增加写索引值。因此,写索引值可被初始化或重新重置。现在,初始化的写索引值将对应于可分配作为信用缓冲器215的高速缓存区域217的N个条目之中的初始条目(即,第0条目)。

也就是说,当无法增加写索引值,或者超出高速缓存区域217的最后一个条目不存在信用缓冲器215可用的另外的条目时,信用缓冲器215的第0条目和信用缓冲器215的第(N-K)条目至第(N-1)条目被新分配作为高速缓存区域217。根据这个示例,现在重新分配的高速缓存区域217可具有一共K+1个可用条目。可选地,并且仅作为一个示例,如果K保持不变,则信用缓冲器215的第(N-K)条目(例如,对应于当前高速缓存区域217的初始条目)可被删除,并且信用缓冲器215的第0条目和信用缓冲器215的第(N-K+1)条目至第(N-1)条目可被新分配(即,重新分配)作为高速缓存区域217。另外,如图10的这些示例所示,高速缓存区域217可包括信用缓冲器215的非连续条目,或者可选地,除了以上讨论的将信用缓冲器215的第一条目用于高速缓存区域217的这种环绕示例之外,信用区域217的条目可全部是连续的。

图11是根据一个或多个实施例的使用源装置的信用缓冲器中的高速缓存区域高速缓存数据的方法的详细流程图。

在S1101中,数据处理单元211识别并且生成数据请求。

在S1102中,标签匹配器212在将被请求的数据的地址与高速缓存区域217中高速缓存的对应的数据的标签之间,执行标签匹配。

在S1103中,标签匹配器212根据标签匹配的结果,来确定高速缓存命中或高速缓存未命中。

在S1104中,当确定高速缓存命中时,控制器214控制信用缓冲器215(即,从高速缓存区域217)读出在与命中索引对应的条目中高速缓存的数据。

在S1105中,当确定高速缓存未命中时,目的装置220基于地址接收数据的请求,并且控制器214将从目的装置220接收的对应的数据高速缓存在与当前写索引对应的高速缓存区域217的条目中。

在S1106中,控制器214确定高速缓存区域217是否通过将数据高速缓存在与当前写索引对应的条目中而由此变满。

在S1107中,当高速缓存区域217在将数据高速缓存在与当前写索引对应的条目中之后未满时,控制器214增加对应的写索引值。

在S1108中,当高速缓存区域217已满时,控制器214确定增加写索引值是否是可行的。

在S1109中,当允许增加写索引值或增加写索引值是可行的时,控制器214控制信用缓冲器215(即,信用缓冲器215的高速缓存区域217)删除在高速缓存区域217中的初始条目中高速缓存的数据。高速缓存区域217可被重新分配,以包括与增加的写索引值对应的信用缓冲器215的条目。

在S1110中,控制器214增加写索引值。

在S1111中,控制器214执行控制,以将信用许可发送给目的装置220。

在S1112中,当不允许增加写索引值或增加写索引值不可行时,控制器214控制信用缓冲器215(即,信用缓冲器215的高速缓存区域217)删除在信用缓冲器215中的初始条目中高速缓存的数据,并且高速缓存区域217可被重新分配以包括信用缓冲器215的初始条目。

在S1113中,控制器214初始化写索引值,例如,将写索引值设置为代表现在被分配给高速缓存区域217的信用缓冲器215的初始条目的初始值。

在S1114中,控制器214执行控制以将信用许可发送给目的装置220。

图12是描述根据一个或多个实施例的使用基于信用的流控制的源装置与目的装置之间的数据通信的示图。

参照图12,与图5中不同,数据请求被直接发送给目的装置220,并且对从目的装置220接收的数据执行标签匹配。

源装置210的信用缓冲器215将信用缓冲器215的一些条目分配为高速缓存区域217。源装置210可将从目的装置220接收的数据高速缓存在信用缓冲器215的高速缓存区域217中。

在S1201中,数据处理单元211生成数据请求。例如,数据处理单元211可通过指定数据的地址,来识别并且生成数据请求。

数据请求(数据地址)被直接发送给目的装置220。当目的地装置220接收到数据请求时,目的装置220将对应的地址的数据发送给源装置210。

在S1202中,标签匹配器212在接收的数据的地址和与高速缓存区域217中高速缓存的数据对应的一个或多个标签之间,执行标签匹配。当标签匹配的结果是接收的数据被高速缓存在高速缓存区域217中时,标签匹配器212确定高速缓存命中。当标签匹配的结果是接收的数据未被高速缓存在高速缓存区域217中时,标签匹配器212确定高速缓存未命中。

在S1203中,诸如,通过在确定高速缓存命中时将指示高速缓存区域217中的命中条目的命中索引或命中标记存储于FIFO缓冲器213,并且在确定高速缓存未命中时将未命中标记存储于FIFO缓冲器213,请求FIFO缓冲器213存储标签匹配的结果。

在图12中,具有虚线的箭头指示与高速缓存命中对应的操作,具有点划线的箭头指示与高速缓存未命中对应的操作。

在S1204中,当存储在请求FIFO缓冲器213中的标签匹配的结果是高速缓存命中时,控制器214执行控制以根据对应的命中索引读取在高速缓存区域217中高速缓存的数据。

在S1205中,数据处理单元211处理从高速缓存区域217读取的数据。也就是说,与图5中不同,虽然数据请求被发送给目的装置220,并且从目的装置220接收数据,但是当如图5中一样确定高速缓存命中时,从高速缓存区域217读取数据。也就是说,由于存在已经被高速缓存的匹配的数据,因此不处理根据数据请求从目的装置220接收的数据。这可以是因为,与数据处理单元211访问当前接收的数据的情况相比,数据处理单元211可更快地,并且更高效地从信用缓冲器215访问高速缓存的数据。

在S1204中,当存储在请求FIFO缓冲器213中的标签匹配的结果是高速缓存未命中时,控制器214将从目的装置220接收的数据高速缓存在与当前写索引值对应的条目中。然后,控制器214可通过增加高速缓存区域217的写索引值来设置新的写索引。也就是说,源装置210可基于接收的数据和高速缓存的数据是否彼此匹配,来设置高速缓存区域217的写索引值。然后,在一个实施例中,在S1205中,源装置210的数据处理单元211可处理在高速缓存区域217中高速缓存的接收的数据。

每当从高速缓存区域217删除在任何条目中高速缓存的数据时,控制器214可向目的装置220发送信用许可。

根据一个实施例(如图5中示出的实施例),当在源装置210与目的装置220之间执行使用基于信用的流控制的数据通信时,数据处理单元211可通过使用在信用缓冲器215的高速缓存区域217中高速缓存的数据执行数据访问,在源装置210的外部或信用缓冲器215的外部没有分开的高速缓存的情况下,执行快速数据处理。

图13是根据一个或多个实施例的处理器的数据处理方法的流程图。根据实施例,与图1-图12相关联的以上描述中的任意描述或任何组合也适用于图13的方法,因此,对于图13的以下讨论,对应的描述将会被省略,需要注意的是,实施例或图13不限于此。

在S1301中,源装置210生成数据的请求。

在S1302中,当使用基于信用的流控制从源装置210接收到数据请求时,目的装置220使用基于信用的流控制将请求的数据发送给源装置210。

在S1303中,源装置210将从目的装置220接收的数据高速缓存在高速缓存区域217中,信用缓冲器215的一些条目被分配作为高速缓存区域217。

通过硬件组件来实现执行这里参照图1-图13描述的操作的图1-图10和图12中示出的设备、单元、模块、装置和其它组件。硬件组件的示例包括:控制器、传感器、生成器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器、处理器、存储器、永久存储装置(诸如,盘驱动器)、用于处理与外部装置的通信的通信装置和端口和包括触摸面板、键、按钮等的用户接口装置以及本领域普通技术人员已知的任何其它电子部件。在一个示例中,通过计算硬件(例如,由一个或多个处理器或计算机)来实现硬件组件。通过一个或多个处理元件(诸如,逻辑门的阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或者本领域普通技术人员已知的能够以定义的方式响应并且执行指令以实现期望的结果的任何其它装置或装置的组合),来实现处理器或计算机。在一个示例中,处理器或计算机包括或连接到存储由该处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件执行指令或软件(诸如,操作系统(OS)和在OS上运行的一个或多个软件应用),以执行这里针对图1-图13描述的操作。硬件组件也响应于指令或软件的执行,而访问、操纵、处理、创建和存储数据。为了简单,可在这里描述的示例的描述中使用单数术语“处理器”或“计算机”,但是在其它示例中,使用多个处理器或计算机,或者处理器或计算机包括多个处理元件或多种类型的处理元件,或者处理器或计算机包括多个处理元件以及多种类型的处理元件。在一个示例中,硬件组件包括多个处理器,在另一示例中,硬件组件包括处理器和控制器。硬件组件具有不同处理配置中的任意一种或多种处理配置,不同处理配置的示例包括:单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理以及多指令多数据(MIMD)多处理。

执行这里针对图1-图10和图12描述的操作的图1-图13中示出的方法被计算硬件(例如,通过一个或多个处理器或计算机)执行,如上所述,所述计算硬件执行用于执行这里描述的操作的指令或软件。

用于控制处理器或计算机实现硬件组件并且执行如上所述的方法的指令或软件被编写为计算机程序、代码段、指令或它们的任意组合,从而单独地或共同地指示或配置处理器或计算机如用于执行由硬件组件执行的操作和如上所述的方法的机器或专用计算机那样进行操作。在一个示例中,指令或软件包括由处理器或计算机直接执行的机器代码,诸如,由编译器产生的机器代码。在另一示例中,指令或软件包括由处理器或计算机使用解释器执行的高级代码。本领域普通程序员可基于公开了用于执行由硬件组件执行的操作和如上所述的方法的算法的附图中示出的框图和流程图以及说明书中的对应描述,容易地编写指令或软件。

用于控制处理器或计算机实现硬件组件并且执行如上所述的方法的指令或软件以及任何关联的数据、数据文件和数据结构被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中,或者被记录、存储或固定在一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取存储器(RAM)、闪存、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘和能够以非暂时方式存储指令或软件以及任何关联的数据、数据文件和数据结构并且向处理器或计算机提供指令或软件以及任何关联的数据、数据文件和数据结构以使得处理器或计算机能够执行指令的本领域普通技术人员已知的任何装置。在一个示例中,指令或软件以及任何关联的数据、数据文件和数据结构分布在联网的计算机系统上,以使得由处理器或计算机以分布式方式存储、访问并且执行指令和软件以及任何关联的数据、数据文件和数据结构。

尽管本公开包括特定示例,但是对于本领域普通技术人员而言将清楚的是,在不脱离权利要求及其等同物的精神和范围的情况下,可对这些示例进行各种形式和细节上的变化。应仅在描述性意义上而非为了限制的目的考虑这里描述的示例。每个示例中的特征或方面的描述应该被视为适用于其它示例中的类似的特征或方面。如果描述的技术以不同次序被执行,和/或如果描述的系统、架构、装置或电路中的组件以不同方式被组合和/或由其它组件或其等同物替换或补充,则可实现合适的结果。因此,本公开的范围不由详细描述定义,而是由权利要求及其等同物定义,并且权利要求及其等同物的范围内的所有变化应该被解释为被包括在本公开中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1