实现线减少和物理拥堵最小化的多核总线架构的制作方法

文档序号:14685746发布日期:2018-06-14 21:00阅读:349来源:国知局
本发明的
技术领域
是数字数据处理,且更具体来说,多个CPU核心之间的数据总线。
背景技术
:传统的总线协议依赖于通信握手来在主控装置与从属装置之间传输事务。典型的握手呈以下形式。主控装置将事务放置在总线上,并且主控装置断言命令请求信号。事务保持在总线上,从而阻止其它事务被传输,直到从属装置断言指示已接收到事务的命令确认信号为止。在处理完成之后,从属装置可任选地将响应放置在独立总线上并断言响应请求。响应保持在总线上,从而阻止其它响应被传输,直到主控装置断言指示已接收到响应的响应确认信号为止。由于以下因素,这种传统总线通信握手遭受性能损失。当断言请求信号而等待确认信号时,事务(例如,命令或响应)可处在总线上持续多个循环。这种等待阻止其它事务利用总线。这减少了在所述时间周期期间传输的事务的数目并且降低了通信性能。这种握手需要双向通信以便传输事务:来自事务发送者的请求信号;以及来自事务接收者的确认信号。这两个信号通常处在不同循环中,从而增加了单个事务处理的延迟。典型的通信协议在独立物理信道上传输读取、写入和相干事务。命令和响应通常也在独立信道上传输。随着地址和数据宽度增加,这导致必须在物理设计期间路由非常大数目的物理线。所产生的线拥堵可导致增加的面积、功率消耗和延长的设计进度。在面积增加导致插入额外管线级的情况下,这种布线拥堵还可导致降低的性能。技术实现要素:多核总线架构(MBA)协议包含针对所有事务类型(包含所有命令种类(读取、写入、相干性、消息)以及响应)共享同一物理信道的新颖技术。两个信道(即,事务属性信道(TAC)和事务数据信道(TDC))用于传输所有事务属性和数据而与事务类型无关。与单个方向上的数据流的宽度无关,无论对于写入命令、读取响应还是相干响应均仅需要单个数据总线。总线代理在总线上交换信息。总线代理包含连接到总线的信号线的属性子集的属性信道。属性信道传输总线事务属性信息。此总线属性信息任选地包含事务类型信号、事务ID、有效信号、总线代理ID信号、地址信号、事务大小信号、信用花费信号以及信用返回信号。总线代理包含连接到独立于总线的信号线的属性子集的总线的信号线的数据子集的数据信道。数据信道任选地传输数据有效信号、事务ID信号和总线代理ID信号。总线代理优选地可在多个数据传送中传输数据。数据信道任选地传输最后数据信号以标记当前总线事务的最后数据。附图说明在图式中说明本发明的这些和其它方面,在图式中:图1说明根据本发明的一个实施例的单核标量处理器;图2说明根据本发明的另一实施例的双核标量处理器;图3说明根据本发明的另一实施例的单核向量处理器;图4说明根据本发明的另一实施例的双核向量处理器;图5说明本发明的CPU的一个实施例的构造;图6说明全局标量寄存器堆;图7说明全局向量寄存器堆;图8说明由乘法和相关功能单元共享的本地向量寄存器堆;图9说明加载/存储单元的本地寄存器堆;图10说明预测寄存器堆;图11说明根据本发明的优选实施例的中央处理单元的管线阶段;图12说明单个提取包的16个指令;图13说明由本发明使用的指令的指令编码的实例;图14说明根据本发明的SIMD运算的进位控制;图15说明本发明可适用的计算群集1500;图16说明本发明的单个多核总线架构接口的每一信道的信号方向;图17说明本发明的实例成对接口拓扑中的每一信道;图18说明另一实例成对接口拓扑中的每一信道;图19说明用于dedc信号的编码的逻辑;图20说明事务属性信道的简单信用握手;图21说明同一信道上的交错信用握手;图22说明信用非写入序列中的步骤;图23说明信用化写入命令序列的一般形式;以及图24说明例如用于本发明中的代理的框图。具体实施方式图1说明根据本发明的一个实施例的单核标量处理器。单核处理器100包含标量中央处理单元(CPU)110,其耦合到独立的一级指令高速缓冲存储器(L1I)111和一级数据高速缓冲存储器(L1D)112。中央处理单元核心110可如在本领域中已知那样构造,且通常将包含寄存器堆、整数算术逻辑单元、整数乘法器和程序流控制单元。单核处理器100包含二级组合式指令/数据高速缓冲存储器(L2)113,其保持指令和数据两者。在优选实施例中,标量中央处理单元(CPU)110、一级指令高速缓冲存储器(L1I)111、一级数据高速缓冲存储器(L1D)112和二级组合式指令/数据高速缓冲存储器(L2)113形成在单个集成电路上。在优选实施例中,此单个集成电路还包含辅助电路,例如,功率控制电路121、仿真/跟踪电路122、可测试性设计(DFT)可编程内建自我测试(PBIST)电路123和定时电路124。在CPU110外部且可能地集成在单个集成电路100上的是存储器控制器131。CPU110在程序控制下操作以对所定义数据执行数据处理操作。控制CPU110的程序由必须在解码和执行之前提取的多个指令组成。单核处理器100包含多个高速缓冲存储器。图1说明一对一级高速缓冲存储器。一级指令高速缓冲存储器(L1I)111存储由CPU110使用的指令。CPU110首先试图从一级指令高速缓冲存储器111存取任何指令。一级数据高速缓冲存储器(L1D)112存储由CPU110使用的数据。CPU110首先试图从一级数据高速缓冲存储器112存取任何所要数据。两个一级高速缓冲存储器(L1I111和L1D112)由二级统一高速缓冲存储器(L2)113支持。在缓存未命中一级指令高速缓冲存储器111或一级数据高速缓冲存储器112的情况下,从二级统一高速缓冲存储器113查找所请求的指令或数据。如果所请求的指令或数据存储在二级统一高速缓冲存储器113中,那么将所请求的指令或数据供应到提出请求的一级高速缓冲存储器以供应到中央处理单元核心110。如本领域中所知,可将所请求的指令或数据同时供应到提出请求的高速缓冲存储器和CPU110以加速使用。二级统一高速缓冲存储器113经由存储器控制器131进一步耦合到更高级别的存储器系统。存储器控制器131通过存取外部存储器(未在图1中展示)处置二级统一高速缓冲存储器113中的缓存未命中。存储器控制器131处置所有以存储器为中心的功能,例如,可高速缓存性确定、错误检测和校正、地址转换和类似者。单核处理器100可为多处理器系统的一部分。在所述情形中,存储器控制器131处置处理器之间的数据传送且维持处理器之间的高速缓冲存储器相干性。图2说明根据本发明的另一实施例的双核处理器。双核处理器200包含:第一CPU210,其耦合到独立一级指令高速缓冲存储器(L1I)211和一级数据高速缓冲存储器(L1D)212;以及第二CPU220,其耦合到独立一级指令高速缓冲存储器(L1I)221和一级数据高速缓冲存储器(L1D)222。中央处理单元210和220优选地类似于图1中说明的CPU110那样构造。双核处理器200包含支持所有四个一级高速缓冲存储器(L1I211、L1D212、L1I221和L1D222)的单个共享二级组合式指令/数据高速缓冲存储器(L2)231。在优选实施例中,CPU210、一级指令高速缓冲存储器(L1I)211、一级数据高速缓冲存储器(L1D)212、CPU220、一级指令高速缓冲存储器(L1I)221、一级数据高速缓冲存储器(L1D)222和二级组合式指令/数据高速缓冲存储器(L2)231形成在单个集成电路上。此单个集成电路优选地还包含辅助电路,例如,功率控制电路241、仿真/跟踪电路242、可测试性设计(DFT)可编程内建自我测试(PBIST)电路243和计时电路118。此单个集成电路还可包含存储器控制器251。图3和4说明类似于分别在图1和2中展示的单核处理器和双核处理器的单核处理器和双核处理器。图3和4与图1和2的不同之处在于展示向量中央处理单元。如下文进一步描述,单核向量处理器300包含向量CPU310。双核向量处理器400包含两个向量CPU410和420。向量CPU310、410和420包含比对应标量CPU110、210和220宽的数据路径操作单元和数据寄存器。向量CPU310、410和420与对应标量CPU110、210和220的进一步不同在于包含流式引擎313(图3)和流式引擎413和423(图5)。流式引擎313、413和423是类似的。流式引擎313将数据从二级统一高速缓冲存储器314(L2)传送到向量CPU310。流式引擎413将数据从二级统一高速缓冲存储器431传送到向量CPU410。流式引擎423将数据从二级统一高速缓冲存储器431传送到向量CPU420。根据优选实施例,每一流式引擎313、413和423管理多达两个数据流。每一流式引擎313、413和423在某些限制情况中传送数据。流含有一系列特定类型的元素。对流进行操作的程序循序地读取数据,轮流对每一元素进行操作。每一个流具有以下基本性质。流具有在时间上良好定义的开始和结束。流数据贯穿流具有固定的元素大小和类型。流数据具有固定的元素序列。因此,程序无法在流内随机查找。流数据在活动时是只读的。程序无法在从流读取的同时写入流。一旦打开流,流式引擎就:计算地址;从二级统一高速缓冲存储器提取所定义的数据类型;执行数据类型操纵(例如,零扩展、符号扩展)、数据元素分类/调换(例如,矩阵转置);并将数据直接递送到CPU内的编程执行单元。流式引擎因此可用于对良好数据进行实时数字筛选操作。流式引擎使对应CPU免于进行这些存储器提取任务,从而启用其它处理功能。流式引擎提供以下益处。其允许多维存储器存取。其增加功能单元的可用带宽。其最小化缓存未命中停止(stall)的数目,这是因为流缓冲器可绕过L1D高速缓冲存储器和L2高速缓冲存储器。其减少在环路中需要维持的标量运算的数目。其管理地址指针。其自动处置地址产生,从而空出地址产生指令槽和.D单元用于其它计算。图5说明本发明的CPU的一个实施例的构造。除非另有声明,否则本描述涵盖标量CPU和向量CPU。本发明的CPU包含多个执行单元:乘法单元511(.M)、相关单元512(.C)、算术单元513(.L)、算术单元514(.S)、加载/存储单元515(.D)、分支单元516(.B)和预测单元517(.P)。下文描述这些执行单元的操作和关系。乘法单元511主要执行乘法。乘法单元511接受多达两个双向量操作数且产生多达一个双向量结果。乘法单元511为可配置以执行以下运算的指令:各种整数乘法运算,其具有范围在8位到64位乘法运算内的精度;各种正规和复数点积运算;和各种浮点乘法运算;逐位逻辑运算、移位以及加和减。如图5中说明,乘法单元511包含用于四个同时16位×16位乘法的硬件。乘法单元511可以下文描述的方式存取全局标量寄存器堆521、全局向量寄存器堆522和共享.M和C.本地寄存器523堆。转发多路复用器530协调全局标量寄存器堆521、全局向量寄存器堆522、对应流式引擎和乘法单元511之间的数据传送。相关单元512(.C)接受多达两个双向量操作数且产生多达一个双向量结果。相关单元支持这些主要运算。为支持WCDMA“搜寻(Rake)”和“搜索”指令,相关单元512每个时钟循环执行多达512个2位PN*8位I/Q复数乘法。相关单元512执行8位和16位绝对值差和(SAD)计算,从而每一时钟循环执行多达512次SAD。相关单元512执行水平加和水平最小/最大指令。相关单元512执行向量排列指令。相关单元512包含有8个256位宽的控制寄存器。这些控制寄存器用于控制某些相关单元指令的操作。相关单元512可以下文描述的方式存取全局标量寄存器堆521、全局向量寄存器堆522和共享.M和C.本地寄存器堆523。转发多路复用器530协调全局标量寄存器堆521、全局向量寄存器堆522、对应流式引擎和相关单元512之间的数据传送。CPU500包含两个算术单元:算术单元513(.L)和算术单元514(.S)。每一算术单元513和算术单元514接受多达两个向量操作数且产生一个向量结果。计算单元支持这些主要运算。算术单元513和算术单元514以在8位到64位范围内的精度执行各种单指令多数据(SIMD)定点算术运算。算术单元513和算术单元514执行各种向量比较和最小/最大指令,其将结果直接写入到预测寄存器堆526(下文进一步描述)。这些比较包含A=B、A>B、A≥B、A<B和A≤B。如果比较正确,那么将1个位存储在预测寄存器内的对应位位置中。如果比较失败,那么将0存储在预测寄存器内的对应位位置中。向量比较指令接受字节(8位)数据且因此产生32个一位结果。算术单元513和算术单元514使用指定的预测寄存器执行各种向量运算,如下文解释。算术单元513和算术单元514以在从半精度(16位)、单精度(32位)到双精度(64位)范围内的精度执行各种SIMD浮点算术运算。算术单元513和算术单元514执行专用指令以加速各种算法和函数。算术单元513和算术单元514可存取全局标量寄存器堆521、全局向量寄存器堆522和共享.S和.L本地寄存器堆524和预测寄存器堆526。转发多路复用器530协调全局标量寄存器堆521、全局向量寄存器堆522、对应流式引擎和算术单元513和514之间的数据传送。加载/存储单元515(.D)主要用于地址计算。加载/存储单元515经扩展以接受高达64位的标量操作数且产生高达64位的标量结果。加载/存储单元515包含额外硬件以对加载和存储数据执行数据操纵(例如,调换、打包和解包),以减小其它单元上的工作负荷。加载/存储单元515可在每一时钟循环期间将一个加载或存储请求连同44位物理地址一起发送到一级数据高速缓冲存储器(L1D)。加载或存储数据宽度可为32位、64位、256位或512位。加载/存储单元515支持这些主要运算:64位SIMD算术操作;64位逐位逻辑运算;以及标量和向量加载和存储数据操纵。加载/存储单元515优选地包换微TLB(表格后备缓冲器)块以执行从48位虚拟地址到44位物理地址的地址转换。加载/存储单元515可以下文描述的方式存取全局标量寄存器堆521、全局向量寄存器堆522和.D本地寄存器堆525。转发多路复用器530协调全局标量寄存器堆521、全局向量寄存器堆522、对应流式引擎和加载/存储单元515之间的数据传送。分支单元516(.B)计算分支地址、执行分支预测且基于预测的结果改变控制流。预测单元517(.P)为对向量预测寄存器执行基本操作的小控制单元。预测单元517可直接访问向量预测寄存器526。预测单元517对预测寄存器执行不同的位操作,例如AND、ANDN、OR、XOR、NOR、BITR、NEG、SET、BITCNT(位计数)、RMBD(最右位检测)、位抽取和扩展等等。图6说明全局标量寄存器堆521。存在16个独立的64位宽的标量寄存器。全局标量寄存器堆521的每一寄存器可读取为32位标量数据(指示为寄存器A0到A15601)或64位的标量数据(指示为寄存器EA0到EA15611)。然而,写入始终为64位,如果需要,零扩展以填充高达64位。所有功能单元的所有标量指令可读取或写入到全局标量寄存器堆521。指令类型确定数据大小。全局标量寄存器堆521支持大小在8位到64位范围内的数据类型。向量指令也可写入到64位全局标量寄存器521,其中向量的较高192位数据被丢弃。向量指令还可从全局标量寄存器堆521读取64位数据。在此情形中,操作数在较高192位中零扩展以形成输入向量。图7说明全局向量寄存器堆522。存在16个独立的256位宽的向量寄存器。全局向量寄存器堆522的每一寄存器可读取为32标量数据(指示为寄存器X0到X15701)、64位的标量数据(指示为寄存器EX0到EX15711)、256位向量数据(指示为寄存器VX0到VX15721)或512位双向量数据(指示为DVX0到DVX12,未说明)。在当前实施例中,仅乘法单元511和相关单元512可执行双向量指令。所有功能单元的所有向量指令可读取或写入到全局向量寄存器堆522。任何功能单元的任何标量指令还可存取全局向量寄存器堆522寄存器的低32或64位以进行读取或写入。指令类型确定数据大小。图8说明本地向量寄存器堆523。存在16个独立的256位宽的向量寄存器。本地向量寄存器堆523的每一寄存器可读取为32位标量数据(指示为寄存器M0到M15701)、64位的标量数据(指示为寄存器EM0到EM15711)、256位向量数据(指示为寄存器VM0到VM15721)或512位双向量数据(指示为DVM0到DVM7,未说明)。在当前实施例中,仅乘法单元511和相关单元512可执行双向量指令。所有功能单元的所有向量指令可写入到本地向量寄存器堆523。仅乘法单元511和相关单元512的指令可从本地向量寄存器堆523读取。指令类型确定数据大小。乘法单元511可对双向量(512位数据)执行操作。乘法单元511可从全局向量寄存器堆521和本地向量寄存器堆523读取双向量数据且将双向量数据写入到全局向量寄存器堆521和本地向量寄存器堆523。寄存器名称DVXx和DVMx如下映射到全局向量寄存器堆521和本地向量寄存器堆523。指令名称访问的寄存器DVX0VX1:VX0DVX1VX3:VX2DVX2VX5:VX4DVX3VX7:VX6DVX4VX9:VX8DVX5VX11:VX10DVX6VX13:VX12DVX7VX15:VX14DVM0VM1:VM0DVM1VM3:VM2DVM2VM5:VM4DVM3VM7:VM6DVM4VM9:VM8DVM5VM11:VM10DVM6VM13:VM12DVM7VM15:VM14表1每一双向量名称映射到全局向量寄存器堆522或本地向量寄存器523中的对应的一对邻近向量寄存器。名称DVX0到DVX7映射到全局向量寄存器堆522。名称DVM0到DVM7映射到本地向量寄存器523。本地向量寄存器堆524与本地向量寄存器堆523类似。存在16个独立的256位宽的向量寄存器。本地向量寄存器堆524的每一寄存器可读取为32位标量数据(指示为寄存器L0到L15701)、64位的标量数据(指示为寄存器EL0到EL15711)或256位向量数据(指示为寄存器VL0到VL15721)。所有功能单元的所有向量指令可写入到本地向量寄存器堆524。仅算术单元513和算术单元514的指令可从本地向量寄存器堆524读取。图9说明本地寄存器堆525。存在16个独立的64位宽的寄存器。本地寄存器堆525的每一寄存器可读取为32位标量数据(指示为寄存器D0到D15701)或64位的标量数据(指示为寄存器ED0到ED15711)。所有功能单元的所有标量和向量指令可写入到本地寄存器堆525。仅加载/存储单元515的指令可从本地寄存器堆525读取。任何向量指令也可将64位数据写入到本地寄存器堆525,其中结果向量的较高192位数据被丢弃。任何向量指令还可从64位本地寄存器堆525寄存器读取64位数据。返回数据在较高192位中零扩展以形成输入向量。本地寄存器堆525的寄存器仅可用作加载/存储指令中的地址,不用作加载/存储数据单元515的64位算术和逻辑指令的存储数据或源。图10说明预测寄存器堆517。在预测寄存器堆517中存在16个寄存器32位寄存器。预测寄存器堆517含有来自由算术执行的向量比较运算的结果且由向量选择指令和向量预测存储指令使用。专用指令的小子集还可从预测寄存器直接读取、执行操作且直接回写到预测寄存器。还存在可在全局寄存器堆(521和522)与预测寄存器堆517之间传送值的指令。不支持预测寄存器堆517与本地寄存器堆(523、524和525)之间的传送。预测寄存器的每一位(指示为P0到P15)控制一个字节的向量数据。因为向量是256位的,所以预测寄存器的宽度等于256/8=32位。可通过向量比较运算写入预测寄存器堆以存储向量比较的结果。CPU(例如,CPU110、210、220、310、410或420)对指令管线(instructionpipeline)进行操作。在每一个循环期间,此指令管线可分派多达9个并行32位槽以向7个执行单元(乘法单元511、相关单元512、算术单元513、算术单元514、加载/存储单元515、分支单元516和预测单元517)提供指令。指令为下文进一步描述的具有固定长度的所提取的已打包指令。所有指令需要相同数目的管线阶段来进行提取和解码,但需要不同数目的执行阶段。图11说明以下管线阶段:程序提取阶段1110、分派和解码阶段1110和执行阶段1130。程序提取阶段1110针对所有指令包含三个分段。分派和解码阶段针对所有指令包含三个分段。执行阶段1130取决于指令包含一到四个分段。提取阶段1110包含程序地址产生分段1111(PG)、程序存取分段1112(PA)和程序接收分段1113(PR)。在程序地址产生分段1111(PG)期间,在CPU中产生程序地址,且将读取请求发送到用于一级指令高速缓冲存储器L1I的存储器控制器。在程序存取分段1112(PA)期间,一级指令高速缓冲存储器L1I处理请求、存取其存储器中的数据且将提取包发送到CPU边界。在程序接收分段1113(PR)期间,CPU寄存提取包。指令始终每次被提取16个字。图12说明此提取包。图12说明单个提取包的16个指令1201到1216。提取包在512位(16个字)边界上对准。个别指令的执行由每一指令中的p位部分控制。此p位优选地为指令的位0。p位确定指令是否与另一指令并行执行。从较低地址到较高地址扫描p位。如果指令的p位为1,那么紧随其后的指令与所述指令I并行(在与所述指令I相同的循环中)执行。如果指令的p位为0,那么紧随其后的指令在所述指令之后的循环中执行。并行执行的所有指令构成执行包。执行包可含有多达9个指令。执行包中的每一指令必须使用不同的功能单元。执行包可含有多达9个32位宽的槽。槽可为独立指令或扩展由前面紧邻的指令指定的常数字段。槽可用作条件码以应用到同一提取包内的指令。提取包可含有多达2个常数扩展槽和一个条件码扩展槽。存在多达11个相异指令槽,但调度限制将平行槽的最大数目限于9。最大9个槽被如下共享:乘法单元511;相关单元512;算术单元513;算术单元514;加载/存储单元515;分支单元516与预测单元517共享;第一常数扩展;第二常数扩展;且无单位指令与条件码扩展共享。执行包中的最后指令具有等于0的p位。CPU和一级指令高速缓冲存储器L1I管线彼此解耦。来自一级指令高速缓冲存储器L1I的提取包返回可取决于外部环境(例如,在一级指令高速缓冲存储器L1I中是否存在命中)而占用不同数目的时钟循环。因此,程序存取分段1112(PA)可占用若干个时钟循环而非如在其它分段中那样占用1个时钟循环。分派和解码阶段1110包含到适当执行单元的指令分派分段1121(DS)、指令预解码分段1122(D1);和指令解码、操作数读取分段1222(D2)。在到适当执行单元的指令分派分段1121(DS)期间,提取包被分成执行包且被指派给适当功能单元。在指令预解码分段1122(D1)期间,解码源寄存器、目的寄存器和相关联路径来在功能单元中执行指令。在指令解码、操作数读取分段1222(D2)期间,进行更多细节单元解码,并且从寄存器堆读取操作数。执行阶段1130包含执行分段1131到1135(E1到E5)。不同类型的指令需要不同数目的这些分段来完成其执行。这些管线分段在理解CPU循环边界处的装置状态时发挥重要作用。在执行1分段1131(E1)期间,评估指令的条件且对操作数进行操作。如图11中说明,执行1分段1131可从流缓冲器1141和示意性地展示为1142的寄存器堆中的一者接收操作数。对于加载和存储指令,执行地址产生且将地址修改写入到寄存器堆。对于分支指令,PG阶段中的分支提取包受到影响。如图11中说明,加载和存储指令存取在此处示意性地展示为存储器1151的存储器。对于单循环指令,将结果写入到目的寄存器堆。这假设指令的任何条件被评估为真。如果条件评估为假,那么指令在执行1分段1131之后不写入任何结果或具有任何管线操作。在执行2分段1132(E2)期间,加载指令将地址发送到存储器。存储指令将地址和数据发送到存储器。使结果饱和的单循环指令在发生饱和的情况下设置控制状态寄存器(CSR)中的SAT位。对于2循环指令,将结果写入到目的寄存器堆。在执行3分段1133(E3)期间,执行数据存储器存取。使结果饱和的任何乘法指令在发生饱和的情况下设置控制状态寄存器(CSR)中的SAT位。对于3循环指令,将结果写入到目的寄存器堆。在执行4分段1134(E4)期间,加载指令将数据带到CPU边界。对于4循环指令,将结果写入到目的寄存器堆。在执行5分段1135(E5)期间,加载指令将数据写入到寄存器。这在图11中以从存储器1151到执行5分段1135的输入示意性地说明。图13说明由本发明使用的指令的指令编码的实例。每一指令由32个位组成且控制可个别控制的功能单元(乘法单元511、相关单元512、算术单元513、算术单元514、加载/存储单元515)中的一者的操作。位字段如下定义。creg字段和z位为用于条件指令中的任选字段。这些位用于条件指令以识别预测寄存器和条件。z位(位28)指示在预测寄存器中预测是基于零还是不基于零。如果z=1,那么测试针对与零同等。如果z=0,那么测试针对非零。creg=0且z=0的情形被认为始终为真,以允许无条件指令执行。creg字段和z字段在指令中编码,如表2中展示。表2注意,z位列中的“z”是指上文提及的零/非零比较选择,且“x”是不关心的状态。这种编码仅可指定16个全局标量寄存器的子集作为预测寄存器。进行这种选择以保留指令编码中的位。注意,无条件指令不具有这些任选位。对于无条件指令,这些位(28到31)优选地用作额外操作码位。然而,如果需要,执行包可含有唯一的32位条件码扩展槽,其含有处在同一执行包中的指令的4位creg/z字段。表3展示此条件码扩展槽的编码。位功能单元3:0.L7:4.S11:5.D15:12.M19:16.C23:20.B28:24保留31:29保留表3因此,条件码扩展槽以creg/z被指派给同一执行包中的特定功能单元的方式指定解码的位。特殊的向量预测指令使用指定的预测寄存器来控制向量运算。在当前实施例中,所有这些向量预测指令对字节(8位)数据进行操作。预测寄存器的每一位控制是否对于对应字节的数据执行SIMD运算。预测单元517的操作允许基于一个以上向量比较的多种复合向量SIMD运算。举例来说,可使用两个比较进行范围确定。将候选向量与具有在第一数据寄存器内打包的范围的最小值的第一向量参考进行比较。与具有在第二数据寄存器内打包的范围的最大值的第二参考向量进行候选向量的第二比较。两个所得预测寄存器的逻辑组合将允许向量条件运算确定候选向量的每一数据部分是在所述范围内还是在所述范围外。dst字段指定对应寄存器堆中的寄存器作为指令结果的目的地。src2字段指定对应寄存器堆中的寄存器作为第二源操作数。src1/cst字段具有基于指令操作码字段(位2到12和额外地无条件指令的位28到31)的若干含义。第一含义字段指定对应寄存器堆中的寄存器作为第一操作数。第二含义为直接常数。取决于指令类型,这被视为扩展到指定数据长度的无符号整数和零,或被视为扩展到指定数据长度的带符号整数和符号。操作码字段(所有指令的位2到位12和额外地无条件指令的位28到31)指定指令的类型且指示适当的指令选项。这包含功能单元和所执行的操作的指示。除下文详细描述的指令选项之外,操作码的详细解释超出了本发明的范围。p位(位0)标记执行包。p位确定指令是否与以下指令并行执行。从较低地址到较高地址扫描p位。如果对于当前指令p=1,那么下一个指令与当前指令并行执行。如果对于当前指令p=0,那么下一个指令在当前指令之后的循环中执行。并行执行的所有指令构成执行包。执行包可含有多达8个指令。执行包中的每一指令必须使用不同的功能单元。相关单元512和算术单元513和514通常以单指令多数据(SIMD)模式操作。在此SIMD模式中,将相同指令应用到来自两个操作数的打包数据。每一操作数保持安置在预定槽中的多个数据元素。通过数据边界处的进位控制启用SIMD运算。此进位控制实现对不同数据宽度的运算。图14说明进位控制。与门1401接收操作数宽算术逻辑单元内的位N(对于算术单元513和514来说为256位,对于相关单元512来说是512位)的进位输出。与门1401还接收下文将进一步解释的进位控制信号。将与门1401的输出供应到操作数宽的算术逻辑单元的位N+1的进位输入。与门(例如,与门1401)在可能的数据边界处安置在每一对位之间。举例来说,对于8位数据,此与门将在位7与位8之间、位15与位16之间、位23与位24之间等等。每一个此与门接收对应的进位控制信号。如果数据大小具有最小值,那么每一进位控制信号为0,从而有效地阻止邻近位之间的进位传输。如果所选择的数据大小需要两个算术逻辑单元段,那么对应的进位控制信号为1。下表4展示针对例如用于算术单元513和514中的256位宽操作数的情形的实例进位控制信号,其可分成8位、16位、32位、64位或128位的多个段。不需要对最高有效位的进位输出的控制,因此仅需要31个进位控制信号。表4在本领域中通常对为2的整数幂(2N)的数据大小进行运算。然而,这种进位控制技术不限于2的整数幂。所属领域的技术人员将理解如何将这种技术用于其它数据大小和其它操作数宽度。图15说明本发明可适用的计算群集1500。计算群集1500优选地以单个集成电路体现。计算群集1500包含6个双核单元1510、1520、1530、1540、1550和1560。每一双核单元1510、1520、1530、1540、1550和1560可为标量双核单元(例如图2中在200处说明)或向量双核单元(例如图4中说明的400)。代表性的双核1510包含第一CPU01511、第二CPU11512,其中每一者包含独立的L1I和L1D高速缓冲存储器、共享的二级(L2)高速缓冲存储器1513、功率控制电路1514和杂项支持电路1514。6个双核单元1510、1520、1530、1540、1550和1560连接到多核共享存储器控制器1570。多核共享存储器控制器1570包含MSMC核心1571、系统上芯片(SOC)接口1572、电源电路1573和各种未标记支持电路。多核共享存储器控制器1570充当计算群集1500与系统存储器(其可包含三级(L3)高速缓冲存储器、外部接口和类似者)之间的接口。多核共享存储器控制器1570使计算群集1500的各个部分与L3SRAM/高速缓冲存储器互连。未标记的支持电路集成每个SOC的必要L3SRAM、时钟、可测试性设计(DFT)、功率管理和必要的集成逻辑以与SOC模块接口连接。双核1510、1520、1530、1540、1550和1560经由多核总线架构(MBA)与MSMC1570互连。本发明的MBA协议使用信用系统替代传统通信握手。MBA信用系统提供供主控装置通过跟踪可用信用的数目来跟踪从属装置接受事务的能力的机制。从主控装置发送到从属装置的每一事务需要主控装置花费至少一个信用。信用为使主控装置有权发送特定类型的事务的有限资源。一般来说,信用将表示事务在由从属装置接收之后将驻留的从属装置中的物理存储位置。主控装置被要求准确跟踪其所拥有的总信用的数目。对于每一事务,主控装置花费至少一个信用,从而导致可用信用的数目递减。如果主控装置针对给定信用类型已花费所有可用信用,那么其不再能够发送需要所述信用类型的事务。同样可能的是,主控装置保持比事务所需要的更少的信用。特定类型的可用信用可跟踪从属装置中可用的数据缓冲区的数目。主控装置无法起始针对其所述主控装置缺乏所需要的类型和数目的信用的事务。代理可限制事务,例如限制到可用信用类型的写入量和对应于所确保的从属装置容量的数目。一旦对应于信用类型的物理资源已被释放,从属装置就必须将信用返回到主控装置。因此,主控装置花费信用且从属装置返回信用。系统中的信用的总数目是固定的,且其为封闭系统。事务类型到信用类型的映射是基于实施方案的且不由MBA协议指定。在MBA协议中创建的信用系统改变主控装置与从属装置之间的协商以创建更高性能的、更高利用率的接口。因为传统握手要求从属装置在接受并处理事务之前确认事务,所以此事务可在等待确认时使总线阻塞。在传统通信握手中,主控装置不知道也不需要知道从属装置是否能够接受事务。主控装置将事务放置在总线上并断言请求。从属装置可在其准备就绪的任何时点通过断言确认来接受命令。本发明的信用系统允许主控装置跟踪从属装置接受事务的能力,从而从握手过程中移除确认。因为主控装置跟踪针对每一信用类型的可用信用的数目,所以主控装置将仅传输确保由从属装置接受的事务。信用为表示从属装置中的物理资源的有限资源。信用由主控装置针对每一事务花费。一旦从属装置处理事务达到足以释放与信用类型相关联的物理资源的程度,就必须将信用从从属装置返回到主控装置。信用的返回在事务处理正在从属装置中进行之后发生,从而从关键路径移除这个动作。相比之下,传统握手将从属装置确认放置在处理事务的关键路径中。MBA信用系统相对于传统通信握手具有两个关键优点。第一个优点为,事务占据通信信道持续恰好一个循环。这防止单个事务在等待来自从属装置的确认时阻塞信道。这导致吞吐量更高的通信信道,尤其当同一物理信道由多个虚拟或物理主控装置共享时。第二个优点为,通过移除作为传输事务的要求的确认信号,缩短了将事务从主控装置传输到从属装置所需的通信握手。这减少了将事务从主控装置传递到从属装置的总延迟,从而导致更高性能的通信。本发明的多核总线架构(MBA)是针对多处理器平台中装置之间的内部连接而设计的高性能点对点单向总线协议。MBA协议具有以下特性。MBA协议是点对点协议。恰好两个代理通过离散事务通信。一个代理充当主控装置且另一个代理充当从属装置。不支持单个主控装置与多个从属装置之间的广播。MBA协议是单向协议。命令事务仅可由主控装置起始。从属装置不可起始命令事务。在第二镜像接口上起始响应事务。MBA协议是非阻塞的。由主控装置发起的事务必须在单个循环内被从属装置接受。不存在用于在总线上停止事务的设置(provision)。MBA协议是基于信用的。每一个事务具有相关联的信用和信用类型。在主控装置可起始事务之前,其必须具有适当的信用。拥有适当信用类型的信用确保从属装置将接受事务。以下术语贯穿本说明书用于精确识别装置和其在协议中的行为。代理:使用本说明书中定义的MBA协议通信的单个装置或逻辑控制器。代理对:使用MBA协议通信的两个代理。事务:两个代理(即,主控装置和从属装置)之间的读取、写入或消息通信,其可或可不涉及从主控装置到从属装置的数据传送。主控装置:起始事务的代理。从属装置:接收由主控装置起始的事务的代理。核心侧:在两个代理均可具有硬件高速缓冲存储器的事务中更接近CPU核心的代理(例如,在高速缓冲存储器分层结构中)。远侧:在两个代理均可具有硬件高速缓冲存储器的事务中更远离CPU核心的代理(例如,在高速缓冲存储器分层结构中)。数据阶段:在事务数据信道(TDC)上在单个循环中传送的单拍数据。数据传送:单个did[11:0]的数据阶段的完整收集,其中最后数据阶段由dlast信号的断言表示。数据窗:如由ddata[CFG:0]信号的宽度确定的数据传送的最大大小。默认宽度为512位。命令事务:在两个代理之间开始某一序列的某种类型的事务。命令事务由唯一cid[11:0]辨别,且可或可不涉及数据传送。响应事务:在两个代理之间完成某一序列的某种类型的事务。响应事务由命令ID(cid[11:0])匹配到先前起始的命令事务,且可或可不涉及数据传送。写入响应:完成写入命令事务的一序列的写入响应信道(WRC)上的专用响应。事务序列:使用成对接口拓扑的两个代理之间的完整协议级通信。序列以由一个代理起始的命令事务开始,且以来自另一代理的响应事务或写入响应结束。信用:单个原子单元,其使主控装置有权发起确保从属装置在单个循环中接收而不需要接受确认的单个事务。信用按信用类型分类。信用由主控装置拥有和花费。在已发生足以允许主控装置发起相同信用类型的新事务的处理之后,由从属装置返回信用。信用类型:由主控装置用于识别所花费或返回的信用的种类的一般定义但具体实施的信用类别。信用类型通常将与从属代理中的特定物理资源相关联。资源的对于主控装置可用的可个别分配的槽的数目恰好等于所述信用类型的可用信用的数目。主控装置和从属装置必须就每一一般信用类型的确切定义达成一致。信用计数:可由主控装置花费的给定信用类型的信用的当前数目。信号花费:经由cvalid信号的断言和ccredit[CFG:0]信号上的一或多个有效信用类型的断言在事务属性信道(TAC)上起始事务的动作,cvalid信号识别TAC上的有效事务。在允许信用花费之前,主控装置必须针对每一相关联信用类型具有至少为一的信用计数。主控装置必须针对每一信用花费使相关联信用类型递减1。信用花费等于具有隐含命令准备就绪的命令请求。如下文提及,可存在多个不同类型的信用。信用花费必须具有对应于事务的信用类型。此外,信用花费必须包含足以支持事务的多个信用。因此,在数据传送的情形中,由主控装置花费的信用的数目可对应于接收从属装置的数据长度和缓冲区容量。信用返回:响应于先前信用花费将信用从从属装置返回到主控装置的动作。主控装置响应于信用返回使相关联信用类型递增。信用限制:在复位之后主控装置可用的特定信用类型的信用的最大数目。信用限制表示在接收第一信用返回之前可由主控装置起始的个别信用花费动作的最大数目。信道:接口上的共同地用于共同目的(例如,描述事务或传送数据)的一批信号。信用化信道:使用信用且包含用于信用花费和信用返回的信令的信道。可缓存性域:潜在地处在高速缓冲存储器分层结构的不同级别的一批高速缓冲存储器,针对所述高速缓冲存储器,事务可指示分配是可能的。可共享性域:潜在地处在高速缓冲存储器分层结构的不同级别的一批高速缓冲存储器,对于所述高速缓冲存储器,预期相干事务遵守相干协议的规则。本发明的MBA协议优选地向代理提供信令支持,以实施MESI硬件高速缓冲存储器相干协议。所支持的事务类型和响应状态信号是基于称为ACE的ARMAXI相干扩展。相干协议通过在修改数据之前实行高速缓冲存储器线粒度下的独占拥有权来使相同可共享性域中的高速缓冲存储器保持相干。相干协议的完整处理在本说明书的范围之外,但在此处呈现执行概要以为用于MBA协议中的相干信令提供背景。标准MESI高速缓冲存储器相干协议为高速缓冲存储器线提供四个状态:修改;独占;共享;和无效。修改:具有修改状态的高速缓冲存储器线相对于主存储器经修改,且高速缓冲存储器线不存在于同一可共享性域中的任何其它高速缓冲存储器中。独占:具有独占状态的高速缓冲存储器线相对于主存储器未经修改,但高速缓冲存储器线不存在于同一可共享性域中的任何其它高速缓冲存储器中。共享:具有共享状态的高速缓冲存储器线相对于主存储器未经修改。高速缓冲存储器线可存在于相同可共享性域中的其它高速缓冲存储器中。无效:具有无效状态的高速缓冲存储器线不存在于高速缓冲存储器中。存储在此高速缓冲存储器线中的任何数据是无效的且不应被存取。协议中的高速缓冲存储器相干支持需要引入事务之间的多个依赖关系。举例来说,相干ReadClean事务可导致产生必须在ReadClean事务的合法完成之前完成的一或多个CleanShared探查事务。在此情形中,ReadClean是依赖于CleanShared以便完成。ACE规范详述与AXI协议的相干扩展相关的多个此类依赖关系。依赖关系产生阻塞场景,其中一个事务必须阻塞直到另一事务完成为止。相干事务的次序也产生阻塞场景。举例来说,到重叠地址的两个相干写入事务必须以某种方式排序。一个写入事务被另一写入事务阻塞。死锁为其中存在无法被解除的相互依赖关系的情形。这也可被认为是依赖图中的环路。必须建立阻塞规则来防止系统死锁。MBA协议中的所有事务可分类为阻塞事务或非阻塞事务:阻塞事务由所有以下内容表征。允许阻塞事务产生一或多个探查命令事务。允许阻塞事务依赖于探查命令事务的完成以便完成。允许阻塞事务依赖于非阻塞事务的完成以便完成。允许阻塞事务依赖于阻塞命令事务的完成以便完成。非阻塞事务由所有以下内容表征。不允许非阻塞事务产生探查命令事务。允许非阻塞事务依赖于探查命令事务的完成。不允许非阻塞事务依赖于阻塞事务的完成。允许非阻塞事务依赖于非阻塞事务的完成。下表6将MBA协议中的每一事务识别为阻塞或非阻塞。将单个MBA接口分成三个相异信道,其一起操作以用于具有从主控装置到从属装置的单向数据流的完整事务。三个MBA接口信道概述如下。事务属性信道(TAC)为指定从主控装置到从属装置的单个事务的所有属性的信用化信道。事务数据信道(TDC)为用于从主控装置到从属装置的数据传送的非信用化信道。每一TDC包含与先前或并行在TAC上起始的事务匹配的ID。写入响应信道(WRC)为由主控装置用于将写入响应发送到从属装置的信用化信道。每一WRC包含与先前在成对接口拓扑中的相反TAC上起始的事务匹配的ID。图16说明单个MBA接口的每一信道的信号方向。图16包含主控代理1610和从属代理1620。如由数据流1611指示,主控代理1610发信号通知从属代理1620。主控代理1610经由TAC1612、TDC1613和WRC1614将信号传输到从属装置1620。图17说明成对接口拓扑(PIT)中的每一信道。为执行完整的事务序列,代理对必须使用呈镜像对配置的两个单独MBA接口进行通信。这称为成对接口。成对接口支持两个代理之间的双向数据传送。图17说明核心侧代理1710和远侧代理1720。核心侧代理1710为更接近CPU核心的代理。远侧代理1720为更远离CPU核心的代理。在成对接口拓扑中,一个代理始终为核心侧代理且另一代理始终为远侧代理。第一接口由核心侧代理1710用于起始到远侧代理1720的命令和响应事务,如由数据流1711指示。在这些事务中,核心侧代理1710为主控装置且远侧代理1720为从属装置。核心侧代理1710经由TAC1712、TDC1713和WRC1714将信号传输到远侧代理1720。远侧代理1720使用第二镜像接口来起始到核心侧代理1710的命令和响应事务两者,如由数据流1721指示。远侧代理1720经由TAC1722、TDC1723和WRC1724将信号传输到核心侧代理1710。图18说明另一实例成对接口拓扑(PIT)中的每一信道。图18说明核心侧代理1810和远侧代理1820。下文的图1到2展示成对接口拓扑。在此实例中为读取序列。核心侧代理1810在接口上起始读取操作同时充当主控装置。这个读取操作不需要从核心侧代理1810到远侧代理1820的数据传送。因此,核心侧代理1810针对此序列不使用事务数据信道(TDC)。根据数据流1811,核心侧代理1810作为主控装置经由TAC1812将信号传输到远侧代理1820。为完成事务序列,远侧代理1820作为主控装置(根据数据流1821)经由TAC1822起始读取响应事务且在TDC1823上供应读取数据。成对接口拓扑允许每一代理起始命令和响应事务,在必要时将数据传送到另一代理。数据流限于从主控装置到从属装置的单个方向。由于这个原因,每一代理在一个接口上充当主控装置且在第二镜像接口上充当从属装置。事务属性信道(TAC)为指定起始单个信用化事务所必需的所有属性的信用化信道。形成事务属性的所有TAC信号由主控装置在恰好一个循环内断言且必须在同一循环内由从属装置接受。在TAC上起始事务需要使用信用。使用信用确保从属装置具有内部物理资源空间以接受事务。因此,要求从属装置接受在TAC上断言的每一个新事务。主控装置可在每一个循环起始新的事务,这仅受可用信用限制。事务可或可不需要数据传送。如果在TAC上起始的事务需要数据传送,那么使用事务数据信道(TDC)。由主控装置在断言cvalid的情况下花费的每一个信用具有由ccredit[CFG:0]信号确定的信用类型。在从硬件资源成功移除事务之后,从属装置必须使用creturn[CFG:0]信号将相同类型的信用返回到主控装置。每一接口不需要所有TAC信号。表5列出根据本发明的优选实施例的事务属性信道信号。表5信号大小位描述必需/任选驱动器ccoh2相干状态信息任选主控装置cdirty1相干脏线状态任选主控装置cstatus2响应成功/失败状态任选主控装置ctrace4事务跟踪信息任选主控装置creturnCFG信用返回向量,每一信用类型一个位必需从属装置表5(续)信号cvalid、ccredit、cid、ctype、cmstid、cdata、cpriority和csband可用于所有事务中。信号caddress、cmemtype、cpable、ccinner、ccouter、csdomain、cbytecnt、cemudbg和csecure仅可用于命令事务中。信号ccoh、cdirty、cstatus和ctrace仅可用于响应事务中。信号creturn仅可用于信用返回事务中。以下为事务属性信道上的上文提及的信号的信号描述。如表5中提及,一些信号被指示为必需且一些信号被指示为任选。如果信道存在于接口上,那么必需信号必须存在。如果通过配置移除整个信道,那么必需/任选指示符不适用。cvalid信号识别有效事务在TAC上的存在。0指示无事务。1指示有效事务在总线上。ccredit[CFG:0]信号是识别由此事务花费的信用的位向量。可用信用类型的数目和因此此信号的宽度为配置选项。在优选实施例中,MBA协议定义一般整数信用类型。信用类型为从零递增编号的无符号整数。creturn[CFG:0]信号的宽度必须匹配ccredit的宽度。当cvalid被断言以指示在事务属性信道(TAC)上存在事务时,要求ccredit带有非零值,其中至少一个位被断言为1。单个事务可花费一个以上信用。这通过断言ccredit位向量中的一个以上位来实现。主控装置和从属装置对信用类型的解释和信用类型到物理资源的映射是实施方案特定的。caddress[47:0]信号识别当前事务的开始地址。地址可为虚拟地址、物理地址或任何其它中间地址表示。地址针对对准和未对准事务指定事务的开始字节。在主控装置起始命令事务的接口上需要此信号。cmstid[11:0]信号唯一地识别起始此事务的系统主控装置。针对源于当前主控装置外部的事务,应准确地传播cmstid信号以允许准确的安全性保护检查。cid[11:0]信号唯一地识别当前事务。命令事务建立cid。事务数据信道(TDC)上的对应事务数据传送经由did[11:0]信号镜像cid信号。后续响应事务和写入响应经由cid和wid[11:0]信号镜像cid。ctype[5:0]信号识别当前事务的类型。表6列出6位ctype信号的优选解码。事务类型被编码成3个最高有效位识别事务的类别且3个最低有效位识别类别内的特定类型。表6所有其它可能编码被保留且未在优选实施例中使用。cmemtype[1:0]信号识别给定事务地址的存储器类型,如由虚拟存储器转换确定。三种所支持的存储器类型具有不同的行为语义。编码00指示装置存储器类型。编码01指示正常回写高速缓冲存储器类型。编码10指示正常连续写入高速缓冲存储器类型。编码11被保留且未在优选实施例中使用。cpable信号识别事务地址是否可预取,如由虚拟存储器转换确定。标记为可预取的存储器区域可促成硬件预取流的起始。0表示不可预取。1表示可预取。ccinner[1:0]信号类型识别对应于如由虚拟存储器转换确定的事务地址的内可缓存性域的高速缓冲存储器分配属性。ccouter[1:0]信号识别对应于如由虚拟存储器转换确定的事务地址的外可缓存性域的高速缓冲存储器分配属性。高速缓冲存储器分层结构(一级、二级、三级高速缓冲存储器等等)分成两个互斥可缓存性域,即,内域和外域。高速缓冲存储器分配策略是针对每一域单独建立,且记录在由虚拟存储器转换存储的存储器属性中。内可缓存性域包含最接近CPU的高速缓冲存储器,通常为一级和二级高速缓冲存储器。外可缓存性域排除内域中的(多个)高速缓冲存储器且包含内域之外的高速缓冲存储器,例如末级高速缓冲存储器。内高速缓冲存储器域和外高速缓冲存储器域的解释是依赖于实施方案的,且一些实施方案可选择将两个域视为相同。表7列出相同的ccinner和ccouter的编码。ccinner、ccouter编码分配策略描述00非分配域中的高速缓冲存储器不可以分配01写入分配写入分配。读取不可分配10读取分配读取分配。写入不可分配。11读取/写入分配读取和写入分配。表7csdomain信号识别事务的可共享性域(内域或外域),如由虚拟存储器转换确定。可共享性域识别必须针对此事务保持相干的高速缓冲存储器。存在两个可共享性域:内域和外域。两个域不互斥。外域包含内域中的高速缓冲存储器。内共享域包含最接近CPU的高速缓冲存储器,通常为一级和二级高速缓冲存储器。外共享域包含内域中的高速缓冲存储器以及内域之外的高速缓冲存储器,例如末级高速缓冲存储器。内和外共享域的解释是依赖于实施方案的,且一些实施方案可选择将两个域视为相同。0指示内共享域。1指示外共享域。csdomain仅针对可共享事务有效。针对ReadNoSnoop和WriteNoSnoop事务类型,忽略csdomain信号。ccoh[1:0]信号识别ReadResponse或SnoopResponse事务的相干状态信息。相干状态信息用于向起始主控装置通知高速缓冲存储器线的最终相干状态。对于读取响应事务,ccoh指示当读取已完成时分配高速缓冲存储器中的线的相干状态。对于探查响应事务,ccoh指示当探查已完成时所探查的高速缓冲存储器中的线的相干状态。表8列出ccoh的有效编码。表8cdirty信号识别与此响应事务相关联的高速缓冲存储器线数据传送相对于主存储器是脏的还是干净的。cdirty信号用于向探查主控装置指示探查响应数据是否需要被回写到主存储器。cdirty信号任选地可与读取操作一起使用以实施SharedDirtyMESI状态。cdirty信号仅应用到响应事务且对于命令事务无意义且对于命令事务必须被限于0。0cdirty信号指示高速缓冲存储器线数据传送相对于主存储器无改变。1cdirty信号指示高速缓冲存储器线数据传送与主存储器不同。这指示此高速缓冲存储器线必须在某个较晚的时间被回写到主存储器。cdata信号识别此事务是否伴随有相关联数据传送。读取操作将不断言此信号,这是因为读取操作不包含数据传送。后续读取响应事务将断言cdata信号。0cdata信号指示事务不包含传送数据。1cdat2信号指示事务包含相关联数据。因此,要求写入命令事务断言cdata=1。要求读取响应事务断言cdata=1而与cstatus[1:0]中指示的状态无关。cbytecnt[6:0]信号识别事务的总大小。最大合法大小为128个字节。全零的cbytecnt指示128字节的事务。探查和牺牲品事务需要cbytecnt的这种编码。在其它情况下,cbytecnt信号的数目等于数据传送字节的数目。零大小的事务无法由cbytecnt信号指定。然而,写入事务可使TDC上的dbyten[CFG:0]信号归零以执行不修改任何字节的写入事务。cstatus[1:0]信号识别响应事务的事务完成状态。此信号仅针对响应事务有效且针对命令事务被忽略。表9列出有效编码。cstatus编码描述注释00成功01归因于地址错误失败无效地址,MMR的SARM10归因于EDC错误失败不可校整数据错误11归因于保护错误失败安全/防火墙冲突,MMR保护错误。表9ctrace[3:0]信号识别读取响应事务的跟踪信息。此信息由仿真/调试架构使用。跟踪信息记录存储器分层结构中为事务服务的等级。在不考虑事务的成功/失败状态的情况下记录跟踪信息。在cstatus[1:0]信号中捕获成功/失败状态。信号编码被定义为与由仿真/调试架构规范指定的那些信号编码匹配。表10列出有效编码。表10cemudbg信号将当前事务识别为仿真事务或非仿真事务。0cemudbg信号指示正常、非仿真事务。1cemudbg信号指示仿真事务。csecure信号识别当前事务的安全等级。0csecure信号指示非安全事务。1csecure信号指示安全事务。cpriv[1:0]信号识别当前事务的特权级别。表11列出有效编码。cpriv编码描述00用户01监督者10超级监视者11保留表11cpriority[2:0]信号识别当前事务的优先级别。此信号由从属装置用于仲裁事务。较低数值指示较高优先级。因此,为000的cpriority[2:0]信号指示最高优先级,且为111的cpriority[2:0]信号指示最低优先级。csband[CFG:0]信号为未在响应上镜像的任选用户定义边带信号。此信号是任选的,且其解释是实施方案特定的。csband仅由事务属性信道(TAC)使用且不被要求作为事务序列操作的一部分镜像返回。cmsband[CFG:0]信号为必须在响应上镜像的任选用户定义边带信号。此信号是任选的,且其解释是实施方案特定的。当响应事务被断言为事务序列操作的一部分时,命令事务的cmsband信号必须以相同值镜像。creturn[CFG:0]信号识别在此循环中正返回的单个信用的信用类型。可用信用类型的数目、因此此信号的宽度为配置选项。MBA协议定义一般整数信用类型。主控装置和从属装置对信用类型的解释是实施方案特定的。creturn信号宽度恰好与可能的信用类型的数目匹配。creturn信号被解释为位向量,其中一位用于在接口上使用的每一信用类型。creturn信号的每一位可在每一循环期间由从属装置独立断言。creturn信号中的任何位上的值1指示所述类型的单个信用从从属装置到主控装置的返回。如果在一个循环中断言creturn信号中的一个以上位,那么针对在信号中断言的每一位将一个信用从从属装置返回到主控装置。对于接口上的每一信用类型,在每个循环中可将最多一个信用从从属装置返回到主控装置。事务数据信道(TDC)为用于针对在事务属性信道(TAC)上起始的事务执行从主控装置到从属装置的数据传送的非信用化信道。TDC独立于TAC而被主控。两个信道经由存在于TAC中的cid[11:0]信号和存在于TDC中的did[11:0]信号链接。数据传送分成一或多个数据阶段。TDC上的信号由主控装置在恰好一个循环期间断言且必须由从属装置在同一循环内接受。TDC上的数据传送内的个别数据阶段被要求以严格的线性次序发生但不要求以连续循环发生(例如,突发)。在TDC上允许两个数据阶段之间的空循环。单个事务的最终数据阶段由dlast信号的断言指示。为提高TDC的总利用率,主控装置可交错来自不同事务的数据阶段,只要数据传送内的数据阶段以严格的线性次序发生即可。数据窗和因此ddata信号的大小可配置为以下宽度:64、128、256、512位。默认值为512位。每一数据阶段可传送全数据窗或部分数据窗,如由dbyten[CFG:0]信号指示。每一接口不需要所有TDC信号。表12列出事务数据信道的信号。表12对于表12的大小列,CFG指示此信号的大小是可配置的。括号中的数字是以位为单位的默认大小。dword、dparity和dedc信号的大小从ddata信号的大小导出。dword信号宽度是基于所配置的数据窗大小和128个字节(1024位)的最大数据传送确定的。最大数据传送大小固定在128个字节,而与数据窗的大小无关。dvalid信号识别针对在事务属性信道(TAC)上在相同或先前循环中起始的事务的有效数据阶段在TDC上的存在。为0的dvalid信号指示在当前循环中没有数据。为1的dvalid信号指示当前循环包含有效数据。did[11:0]信号唯一地识别对应于当前数据传送的TAC事务。Did信号必须针对数据传送中的每一个数据阶段相同,但不同数据传送的数据阶段可交错。dtype信号识别数据传送对应于命令还是响应事务。此信息对于唯一地辨别共享同一主控装置dmstid[11:0]和did[11:0]的命令和响应数据传送是必需的。为0的dtype信号指示当前事务是命令事务。为1的dtype信号指示当前事务是响应事务。Dlast信号识别当前数据传送是否是当前总线事务的最后数据。当前总线事务的数据可能过大而无法在数据总线的可用线上传输。在此情形中,在多个循环中传送数据。为0的dlast信号指示当前事务不是最后数据传送。为1的dlast信号指示当前事务是最后数据传送。dstatus[1:0]识别当前数据传送的数据状态。此信号仅针对响应事务适用且针对写入命令事务被忽略。此信号针对数据传送中的每一数据阶段单独断言。不要求此信号针对数据传送中的每一数据阶段相同。这允许碎片化读取返回以针对每一数据阶段返回单独状态。dstatus信号具有与表9中列出的cstatus信号相同的编码。dbyten[CFG:0]信号识别针对当前数据阶段的ddata[CFG:0]窗中的有效字节通道。ddata[CFG:0]总线上的每一个有效字节由dbyten位向量的对应位中的1识别。全零的dbyten指示当前数据阶段中不传送有效数据。dbyten信号可充当写入命令事务的写入byten或读取返回/探查返回事务的读取byten,且需要针对其中dvalid被断言的每一个循环有效。针对写入命令事务支持缺口(Gappy)数据阶段,其中dbyten信号在连续的1之间具有零。这旨在用于高速缓冲存储器事务的写入缓冲器刷新和部分线写入。dbyten信号是任选的。如果dbyten信号不存在,那么针对数据传送中的每一数据阶段假定每一个字节通道为有效。ddata[CFG:0]信号识别当前数据阶段的数据。数据字节通过地址与固定字节通道对准,且所有数据由dbyten[CFG:0]位向量限定。通过设置dbyten[CFG:0]位向量中的必要位来指示未对准数据或缺口数据(例如,写入合并数据)。dword[CFG:0]信号识别总数据传送中当前数据阶段所应用于的数据窗。大于数据窗的大小的数据传送将需要多个数据阶段。dword信号用于识别当前ddata[CFG:0]和dbyten[CFG:0]信号所应用于的数据窗。数据传送需要以线性次序发生。因此,dword信号需要在整个数据传送中单调增加。dword信号的值不能在数据传送中的连续数据阶段中降低。来自遇到低宽度下游数据总线的主控装置的碎片化读取返回将导致dword保持恒定值持续多个数据阶段,直到达到数据窗的边界为止。跨越数据窗的数据阶段是被不允许的,这是因为dword信号无法唯一地辨别当前数据阶段中的哪些数据字节对应于总数据传送中的哪一数据窗。dmstid[11:0]信号唯一地识别起始此数据传送所属的事务的主控装置。dmstid必须与事务属性信道(TAC)上的原始事务的cmstid匹配。dlast信号识别针对给定did[11:0]的数据传送中的最终数据阶段。dparity[CFG:0]信号识别当前ddata[CFG:0]窗的奇偶性。奇偶性被计算为每32位副线的ddata的异或缩减。表13列出多达512位数据窗的dparity信号的编码。dparity子字段注释dparity[15]ddata[511:480]的异或缩减dparity[14]ddata[479:448]的异或缩减dparity[13]ddata[447:416]的异或缩减dparity[12]ddata[415:384]的异或缩减dparity[11]ddata[383:352]的异或缩减dparity[10]ddata[351:320]的异或缩减dparity[9]ddata[319:288]的异或缩减dparity[8]ddata[287:256]的异或缩减dparity[7]ddata[255:224]的异或缩减dparity[6]ddata[223:192]的异或缩减dparity[5]ddata[191:160]的异或缩减dparity[4]ddata[159:128]的异或缩减dparity[3]ddata[127:96]的异或缩减dparity[2]ddata[95:64]的异或缩减dparity[1]ddata[63:32]的异或缩减dparity[0]ddata[31:0]的异或缩减表13碎片化数据传送可经由多个数据阶段传送全数据窗。对于碎片化数据传送中的每一数据阶段,dbyten[CFG:0]将指定被传送的总数据窗的子集。每一数据阶段必须在全数据窗上计算dparity,使对应于为零的dbyten位的数据字节归零。这允许从属装置通过执行来自每一数据阶段的中间dparity值的连续异或来重构完整数据窗的正确dparity值。dedc[CFG:0]信号识别当前数据阶段的错误检测/校正汉明和奇偶校验信息。dedc信号由两个10位字段组成,每个字段在256位数据粒度上计算。每一10位字段由9位汉明集合(syndrome)和单个全奇偶校验位组成。表14列出dedc信号的编码。dedc子字段描述注释dedc[19]高位全奇偶校验{ddata[511:256],dedc[18:10]}的异或缩减dedc[18:10]高位汉明从ddata[511:256]计算dedc[9]低位全奇偶校验{ddata[255:0],dedc[8:0]}的异或缩减dedc[8:0]低位汉明从ddata[255:0]计算表14在数据窗配置为小于256位的情况下,不能在接口上使用dedc信号。图19说明dedc信号的编码的逻辑。数据1910分成两个部分:data[511:256];及data[255:0]。根据已知
技术领域
,汉明产生器1931接收数据1910的数据[511:256]且形成9个位的汉明数据。这9个位变成数据1920的dedc[18:10]。奇偶校验异或缩减1932形成数据位数据[511:256]和来自汉明产生器1931的9个位的汉明数据的组合式异或。这单个异或位变成数据1920的dedc[19]。根据已知
技术领域
,汉明产生器1933接收数据1910的数据[255:0]且形成9个位的汉明数据。这9个位变成数据1920的dedc[8:0]。奇偶校验异或缩减1934形成数据位数据[255:0]和来自汉明产生器1933的9个位的汉明数据的组合式异或。这单个异或位变成数据1920的dedc[9]。碎片化数据传送可经由多个数据阶段传送全数据窗。对于碎片化数据传送中的每一数据阶段,dbyten[CFG:0]将指定正被传送的总数据窗的子集。每一数据阶段必须在全数据窗上计算dedc,使对应于为零的dbyten位的数据字节归零。这允许从属装置通过执行来自每一数据阶段的中间dedc值的连续异或来重构完整数据窗的正确dedc值。dsband[CFG:0]信号为用户定义的边带信号。此信号是任选的,且其解释是实施方案特定的。dsband信号仅由事务数据信道(TDC)使用。写入响应信道(WRC)为由主控装置用于针对成对接口拓扑的相反MBA接口上的先前起始的写入命令事务将写入状态返回到从属装置的信用化信道。在WRC上起始写入响应需要使用信用。WRC信号由主控装置在恰好一个循环内断言且必须在其被断言的循环内由从属装置接受。每一写入状态由wid[11:0]信号唯一地识别,wid[11:0]信号与原始写入命令事务的cid[11:0]匹配。在写入响应的成功处理之后,写入响应信用必须由从属装置使用wreturn信号返回到主控装置。在存在信道的情况下需要WRC上的所有信号,但在不需要写入响应的情况下可排除整个信道。表15列出写入响应信道信号。信号大小使用描述驱动器wvalid1写入响应指示写入响应的存在主控装置wid12写入响应专用写入响应接口的回送ID主控装置wstatus2写入响应专用写入响应接口的写入状态主控装置wnstid12写入响应写入响应的回送主控装置ID主控装置wreturn1信用返回信用返回选通从属装置表15wmstid[11:0]信号为WRC上仅有的任选信号。取决于接口是否支持写入命令事务,整个写入响应信道可被配置成存在或不存在。wvalid信号指示有效写入响应的存在。0指示不存在写入响应。1指示当前循环的有效写入响应。wid[11:0]信号唯一地识别此写入响应针对的原始TAC事务。wid必须匹配原始写入命令事务的cid。wstatus[1:0]信号识别写入事务的状态。wstatus信号具有与表9中列出的cstatus相同的编码。wmstid[11:0]信号识别发起此响应针对的写入命令事务的系统主控装置。wmstid必须匹配写入命令事务的原始cmstid。wreturn信号指示写入响应信用的返回。0指示不存在写入响应信用返回。1指示当前循环的有效写入响应信用返回。MBA协议定义多个事务类型。事务分组成两个基本类别,即,命令和响应。下文用由协议支持的每一个事务的描述来描述两个事务类别。命令事务起始两个代理之间的可涉及或可不涉及数据传送的事务序列。序列以两种方式中的一者完成:由另一代理在相反MBA接口的写入响应信道(WRC)上起始的写入响应;及由另一代理在相反MBA接口的事务属性信道(TAC)上起始的响应事务和在其事务数据信道(TDC)上的其相关联数据传送。所有命令事务必须指定唯一cid[11:0]。cid不可被由相同主控装置在相同接口上起始的任何有效序列使用。写入命令事务需要从主控装置到从属装置的数据传送。除写入命令序列之外的所有序列被由另一代理在相反MBA接口上起始的响应事务完成。命令事务分成四个类别:需求;探查;消息;以及维护。表16列出需求类别中的命令事务类型。表16中的所有命令对应于ACE等效事务。主控装置列指示每一事务类型的预期发起方。序列完成列指示完成由命令事务起始的序列所需要的响应。表16ReadNoSnoop命令为非相干读取操作。这个读取操作不参与相干协议且不产生探查事务。取决于cmemtype[1:0]、ccinner[1:0]和ccouter[1:0]信号的值,ReadNoSnoop事务可或可不导致高速缓冲存储器分配。ReadOnce命令为将不分配到起始主控装置的高速缓冲存储器中的相干读取操作。ReadClean命令为将分配到起始主控装置的高速缓冲存储器中的相干读取操作。起始主控装置请求共享状态的线但远侧组件可授予独占状态的存取。ReadUnique命令为将分配到起始主控装置中的高速缓冲存储器中的相干读取操作。起始主控装置正请求独占状态的线,但必须授予独占状态的线。WriteNoSnoop命令为非相干写入操作。这个写入操作不参与相干协议且不产生探查事务。WriteUnique命令为大小可小于全高速缓冲存储器线的相干写入操作。事务地址的高速缓冲存储器线不得存在于起始主控装置的高速缓冲存储器中。WriteLineUnique命令为大小必须等于全高速缓冲存储器线的相干写入操作。事务地址的高速缓冲存储器线不得存在于起始主控装置的高速缓冲存储器中。WriteClean命令为可能相干的牺牲品写入事务,其中线将以清除状态保留在起始主控装置的高速缓冲存储器中。WriteBack命令为可能相干的牺牲品写入事务,其中线将不保留在起始主控装置中的高速缓冲存储器中。表17列出探查类别中的命令事务类型。ACE等效事务为:SnoopReadOnce、ReadOnce;SnoopReadShared、ReadShared;SnoopCleanShared、CleanShared;SnoopCleanInvalid、CleanInvalid;和SnoopMakeInvalid、MakeInvalid。表17SnoopReadOnce命令为不改变被探查高速缓冲存储器的状态的非缓存读取探查命令。如果线存在于被探查高速缓冲存储器中,那么必须返回数据。SnoopReadShared命令为需要被探查高速缓冲存储器线在完成之后移动到共享状态的缓存读取探查命令。如果线存在于被探查高速缓冲存储器中,那么数据必须与探查响应事务一起返回。SnoopCleanShared命令为需要被探查高速缓冲存储器线在完成之后移动到清除状态的缓存读取探查命令。如果线存在于被探查高速缓冲存储器中,那么数据必须与探查响应事务一起返回。SnoopCleanInvalid命令为需要被探查高速缓冲存储器线在完成之后移动到无效状态的缓存读取探查命令。如果线存在于被探查高速缓冲存储器中,那么数据必须与探查响应事务一起返回。SnoopMakeInvalid命令为需要被探查高速缓冲存储器线在完成之后移动到无效状态的缓存探查命令。数据从不与探查响应事务一起返回。表18列出消息类别中的命令事务类型。DVMOperatation命令、DVMSync命令和DVMCompleter命令具有ACE等效事务。CacheWarm命令、CacheWarmNotify命令和Evict命令不具有ACE等效物。消息命令事务从不包含数据传送,且因此不需要使用事务数据信道(TDC)。表18CacheWarm命令为需要从属代理起始分配ReadClean操作以将给定地址分配到其高速缓冲存储器的消息。对应于仅可从MMU确定的存储器类型和存储器属性的事务属性信道(TAC)属性必须从CacheWarm事务镜像到后续ReadClean操作。CacheWarm事务由系统用于预取高速缓冲存储器线。可在起始ReadClean操作之后起始消息响应事务。CacheWarmNotify命令为需要从属代理起始分配ReadClean操作以将给定地址分配到其高速缓冲存储器中的消息。对应于仅可从MMU确定的存储器类型和存储器属性的事务属性信道(TAC)属性必须从CacheWarm事务镜像到后续ReadClean操作。当针对ReadClean操作接收到读取响应事务时,从属代理必须起始WriteNoSnoop消息命令事务以指示高速缓冲存储器预热操作的完成。Evict命令为可能地相干高速缓冲存储器状态通知:给定地址已被从起始主控装置中的高速缓冲存储器移除(无效化)。维护命令事务具有通过维护域辨别的两种种类。两个维护域如下:统一点(POU);和相干点(POC)。统一点为指令和数据高速缓冲存储器被统一的点。这通常为二级高速缓冲存储器。相干点为给定相干域中的所有相干主控装置必须回写经修改数据以便使数据被同一相干域中的其它相干主控装置观察的点。这通常为末级高速缓冲存储器。表19CleanSharedPOU命令为要求从核心到从属代理的所有高速缓冲存储器均写出给定高速缓冲存储器线到统一点(如果其保持在修改状态中)的高速缓冲存储器维护操作。CleanSharedPOU事务必须传播到从属代理与核心之间的所有高速缓冲存储器,但可通过SnoopCleanShared命令事务这样做。CleanInvalidPOU命令为要求从核心到从属代理的所有高速缓冲存储器均写出给定高速缓冲存储器线到统一点(如果其保持在修改状态中)的高速缓冲存储器维护操作。所有高速缓冲存储器还必须使高速缓冲存储器线无效化。CleanInvalidPOU事务必须传播到更接近核心的高速缓冲存储器,但可通过SnoopCleanInvalid命令事务这样做。MakeInvalidPOU命令为要求从核心到从属代理的所有高速缓冲存储器无效化给定高速缓冲存储器线到统一点的高速缓冲存储器维护操作。MakeInvalidPOU事务必须传播到更接近核心的高速缓冲存储器,但可通过SnoopMakeInvalid命令事务这样做。CleanSharedPOC命令为要求从核心到从属代理的所有高速缓冲存储器均写出给定高速缓冲存储器线到相干点(如果其保持在修改状态中)的高速缓冲存储器维护操作。CleanSharedPOC事务必须传播到从属代理与核心之间的所有高速缓冲存储器,但可通过SnoopCleanShared命令事务这样做。CleanInvalidPOC命令为要求从核心到从属代理的所有高速缓冲存储器均写出给定高速缓冲存储器线到相干点(如果其保持在修改状态中)的高速缓冲存储器维护操作。所有高速缓冲存储器还必须使高速缓冲存储器线无效化。CleanInvalidPOC事务必须传播到更接近核心的高速缓冲存储器,但可通过SnoopCleanInvalid命令事务这样做。MakeInvalidPOC命令为要求从核心到从属代理的所有高速缓冲存储器无效化给定高速缓冲存储器线到相干点的高速缓冲存储器维护操作。MakeInvalidPOC事务必须传播到更接近核心的高速缓冲存储器,但可通过SnoopMakeInvalid命令事务这样做。响应事务用于完成两个代理之间的事务序列。要求响应事务匹配原始命令事务的cid[11:0]。响应事务可或可不与数据传送相关联。表20列出响应事务类型。以下为ACE等效事务:ReadResponse为RRESP;SnoopResponse为CR、CU;且不存在与MessageResponse和MaintenanceResponse命令的ACE等效物。主控装置列指示每一事务类型的预期发起方。表20要求读取响应事务以完成读取序列。读取响应事务将始终包含数据传送。具有指示失败状态的cstatus[1:0]值的读取响应事务仍必须断言cdata信号且返回为零的数据。具有指示成功的cstatus[1:0]值的读取响应事务必须包含事务数据信道(TDC)上的数据传送。要求探查响应事务以完成探查序列。探查响应事务可或可不包含数据传送。具有指示失败状态的cstatus[1:0]值的探查响应事务可使cdata信号取消断言且防止事务数据信道(TDC)的使用。具有指示成功的cstatus[1:0]值的探查响应事务必须包含事务数据信道(TDC)上的数据传送。要求消息响应事务以完成消息序列。消息响应事务从不包含数据传送。要求维护响应事务以完成维护序列。维护响应事务从不包含数据传送。响应事务通过断言事务属性信道(TAC)上的对应cstatus[1:0]信号来指示错误状态。要求ReadResponse事务断言为1的cdata信号而与试图处理读取操作时发生错误无关。在从属装置执行端点读取存取之前,通常检测地址和保护错误。在此情形中,数据传送仍必须与ReadResponse事务一起发生。带有数据传送的全ReadResponse事务将如下发生:必须以事务属性信道(TAC)上的ReadResponse事务断言为1的cdata信号。cstatus[1:0]信号指示所发生的错误的种类(如果有)。这可为地址错误和保护错误。数据传送必须在事务数据信道(TDC)上发生。数据传送的大小必须等于原始读取操作的cbytecnt[6:0]。ddata[CFG:0]信号必须设置到全零,以避免安全漏洞,所述漏洞将允许取样此信号上的先前寄存的数据。数据错误(例如,不可校正位数据)可在读取存取期间(可能地在已起始ReadResponse事务之后)发生。如果错误在已传送一或多个数据阶段之后发生,那么数据传送必须完成,且必须通过断言dstatus[1:0]信号上的对应错误种类并且针对错误数据阶段将ddata[CFG:0]设置到全零来表示错误数据阶段。所有MBA事务通过使用信用操作。在事务属性信道(TAC)上起始的事务和在写入响应信道(WRC)上起始的写入响应需要使用至少一个信用。信用由主控装置拥有和花费且随后由从属装置返回。写入响应信号仅具有一个种类且不需要进一步分类。事务信用被组织成信号类型。本发明的大多数实施方案将按从属装置上的物理资源来分类信用类型。对于所有事务,ccredit[CFG:0]信号指示被花费的信用的类型。本发明不需要固定数目的信用类型,也不需要定义信用类型的固定含义。本发明的特定实施方案将配置MBA接口上的可用信用类型的数目,以及与每一信用类型相关联的含义。Credited信道的信用握手非常简单且遵守以下时间形式:信用花费;接着是信用返回。主控装置通过断言cvalid且断言ccredit[CFG:0]位向量中的一或多个位花费一或多个信用。对应从属装置接受相同循环上的事务。这是强制性的。如果主控装置具有信用供花费,那么这指示从属装置必须接受事务。从属装置完成事务且接着释放由事务使用的资源。在释放资源之后,从属装置通过断言creturn[CFG:0]位向量中的对应位而将信用返回到主控装置。接着,主控装置具有供后来使用的信用。图20说明事务属性信道(TAC)的简单信用握手。在图20中,2001为控制主控装置和从属装置的时钟信号。主控装置针对一个时钟循环产生有源cvalid信号2002以起始事务。主控装置在同一时钟循环期间还产生ccredit信号A2003。此ccredit信号A2003指示在当前事务上花费的类型信用。根据本发明,如果主控装置具有信用供花费,那么从属装置必须接受事务。从属装置因此接受事务且操作不确定的时间2010。在完成由所接受的事务要求的处理之后,从属装置经由creturn信号A2004返回信用。此creturn信号A2004优选地具有一个时钟循环的长度。在本发明中的信用化信道上存在信用花费动作与信用返回动作的一对一映射。在同一信道上可同时具有在进行中的多个信用握手。主控装置负责记录其所拥有的信用的数目。每一个信用花费动作使主控装置中的信用计数递减1。每一个信用返回动作使主控装置中的信用计数递增1。信用花费和信用返回动作可针对相同或不同信用类型对于不同握手在相同信用化信道上交错。图21说明同一信道上的交错信用握手。在图21中,2101为控制主控装置和从属装置两者的时钟信号。主控装置针对一个时钟循环2111产生有源cvalid信号2102以起始第一事务。主控装置在同一时钟循环2111期间还产生ccredit信号A2103。此ccredit信号A2003指示在当前事务上花费的类型事务。在两个时钟循环2112期间,主控装置传输ccredit信号B2103,接着传输ccredit信号A2103。这些ccredit信号在具有两个时钟循环的cvalid信号2102的周期内。注意,主控装置在自从属装置的信用返回之前传输第二ccredit信号A2103。这仅在主控装置最初具有至少两个A型信用的情况下发生。这又要求从属装置最初在完成第一个此事务之前具有接受第二个A型请求的容量。从属装置因此接受第一事务类型A。在完成由第一个所接受的事务要求的处理之后,从属装置在时间2113期间经由cretrun信号A2014返回信用。此cretrun信号A2104优选地具有一个时钟循环的长度。在完成由第二个所接收事务(类型B)和第三个所接受的事务(类型A)要求的处理之后,从属装置在时间2114期间经由creturn信号A+B2104返回两个信用。在优选实施例中,信用返回编码为位向量,其中一位用于在信道上使用的每一信用类型。针对类型A和类型B两者设置位允许单个信用返回信号返回两种信用类型。图17说明成对接口拓扑(PIT)中的每一信道。为执行完整的事务序列,代理对必须使用呈镜像对配置的两个独立MBA接口通信。这称为成对接口。成对接口支持两个代理之间的双向数据传送。代理A和代理B之间的所有信用化序列将遵守三种形式中的一者:信用化非写入序列;信用化写入序列;和信用化DVM序列。图22说明信用非写入序列中的步骤。此信用非写入序列以核心侧代理1710在TAC1712上起始A0型的信用花费(步骤2201)开始。在步骤2202处,远侧代理1720在TAC1722上将类型为A0的信用返回传输到核心侧代理1710。这在远侧代理1720清理由初始命令事务(步骤2201)占用的物理资源之后立即发生。无事务ID与信用返回相关联。在步骤2203处,远侧代理1720起始新响应事务,从而在TAC1722上花费信用类型为B1的单个信用。此响应事务的ID必须匹配原始ID(步骤2201)。在步骤2204处,远侧代理1720在TDC1723上执行一或多个数据阶段的任选数据传送。这个动作不需要信用,这是因为数据传送被归入步骤2203中的信用花费。因为TAC1722和TDC1723是不同的信道,所以TDC1723上的数据传送的初始阶段可与步骤2203中的信用花费同时发生。图22说明具有多个数据传送的实例。在步骤2205处,核心侧代理1710在TAC1712上将返回信用类型为B的单个信用传输到远侧代理1720。这在核心侧代理1710清理由返回事务(步骤2203)占用的物理资源之后立即发生。无事务ID与信用返回相关联。存在五种信用化非写入序列类型:读取操作;探查操作;消息序列;以及维护序列。图21列出在成对接口拓扑中在图11中说明的步骤的合法事务类型和数据传送。图23说明信用化写入命令序列的一般形式。信用化写入序列与上文描述的信用化非写入序列的不同之处在于完成序列的方式。以写入响应信道(WRC)上的写入状态完成信用化写入序列。使用任意符号名来展示事务ID和信用类型以说明信用的性质和贯穿序列的ID流,且另外在MBA接口或协议内不具有任何意义。信用化写入序列在步骤2301处以核心侧代理1710在TAC1711上花费类型为A5的单个信用开始。这不同于图22的步骤2201的信用类型A0,这是因为核心侧1710必须确保远侧代理1720可处置写入的数据。因此,需要不同的信用类型。在步骤2301处,核心侧代理1710在TDC1712上执行针对写入命令事务的一或多个数据阶段的数据传送。此动作不需要信用。此数据传送归入步骤2301中的信用。因为TAC1711和TDC1712是不同的信道,所以TDC1712上的数据传送的初始阶段可与步骤2201中的信用花费同时发生。图22说明具有多个数据传送的实例。在步骤2303中,远侧代理1720在TAC1722上将类型为A5的单个信用返回到核心侧代理1710。这在远侧代理1720清理由命令事务(步骤2301)占用的物理资源之后立即发生。无事务ID与信用返回相关联。在步骤2304中,当在WRC1724上完成写入命令事务的处理之后,远侧代理1720起始写入响应。所述ID必须匹配原始ID。写入响应需要花费专用写入响应信用类型。在步骤2304中,核心侧代理1710经由WRC1714将单个写入响应信用返回到远侧代理1720。这在由核心侧代理1710发送的写入响应已被核心侧代理1710消费之后立即发生。没有事务ID或明确信用类型与写入响应信用返回相关联。以下为实例信用化DVM序列的步骤。此实例描述充当互连的远侧代理与充当高速缓冲存储器主控装置的核心侧代理之间的行为。在此实例中,核心侧代理1710/高速缓冲存储器主控装置对应于DVM操作,其被起始到来自未在表格中描述的系统中的另一高速缓冲存储器主控装置的互连。存在DVM序列的三个部分:DVM操作;DVM同步;和DVM完成。DVM操作以远侧代理1720起始新DVM操作命令事务序列开始。这包含花费适当类型的单个信用。核心侧代理1710通过一旦核心侧代理1720清理由命令事务占用的物理资源就将所述类型的单个信用返回到远侧代理1720来做出响应。无事务ID与此信用返回相关联。核心侧代理1710接着起始消息响应作为到核心侧代理1710的信用化事务以确认DVM操作的接收。核心侧代理1710使用来自原始DVM操作的ID。核心侧代理1710返回匹配由消息响应使用的类型的单个信用。无事务ID与信用返回相关联。远侧代理1720接着起始新的DVM-Sync命令事务序列,从而花费适当的单个信用。在此实例中,来自同一主控装置的所有DVM事务使用相同信用类型。核心侧代理1710将对应类型A6的单个信用返回到远侧代理1720。这在核心侧代理1710清理由命令事务占用的物理资源之后立即发生。无事务ID与信用返回相关联。接着,核心侧代理1710在信用化事务中起始对远侧代理1720的消息响应以确认DVM-Sync的接收。核心侧代理1710使用来自原始DVM-Sync事务的ID。远侧代理1720返回匹配由消息响应使用的类型的单个信用类型。无事务ID与此信用返回相关联。核心侧代理1710起始新的DVM-Complete命令事务序列,从而花费适当类型的单个信用。远侧代理1720将所述类型的单个信用返回到核心侧代理1710。这在远侧代理1720清理由初始命令事务占用的物理资源之后立即发生。无事务ID与信用返回相关联。远侧代理1720起始到代理B的消息响应信用化事务以确认DVM-Complete的接收。使用来自原始DVM-Sync的ID。核心侧代理1710返回匹配由消息响应使用的类型的单个信用。无事务ID与信用返回相关联。在复位之后,将接口上的每一信用类型的信用计数复位到如由静态接口配置确定的信用限制结扎值(tieoffvalue)。对于每一信用类型,此限制对应于从属装置资源以为对应事务服务。事务基于以下事务性质以本发明的MBA协议排序:caddress[47:0];cmstid[11:0];和cid[11:0]。对于排除任选cmstid信号的MBA接口,出于排序规则的目的,针对所有事务假设常数cmstid。如果两个事务对相同字节中的一者或一者以上进行操作,那么事务定义为具有重叠地址,如由caddress和cbytecnt确定。两个代理之间的信用化非写入序列如图22中说明那样排序。两个代理之间的信用化写入序列如图23中说明那样排序。多个序列可在相同MBA成对接口上交错(图17)。单个序列的排序规则保持有效且个别序列的序列步骤可以任何次序交错。如果主控装置正发送均包含数据传送的多个事务,那么主控装置可以不同次序在两个不同事务之间交错TDC上的数据阶段,只要遵守单个序列规则即可。主控代理的排序规则如下概括。对于包含数据传送的任何事务,第一TDC数据阶段不可在TAC之前,但其可在同一循环中交织。数据传送中的所有数据阶段必须基于地址以单调增加次序发生。主控装置可以在事务属性信道(TAC)上发布的事务的任何次序交错事务数据信道(TDC)数据阶段,只要任何单个数据传送内的数据阶段基于地址以单调增加次序起始即可。主控装置不可使用相同cmstid[11:0]和cid[11:0]组合在同一MBA接口上起始一个以上命令事务,直到已针对先前cmstid/cid对接收响应事务或写入状态为止。如下概括从属代理的排序规则。从属装置必须以接收所有阻碍事务的顺序使用相同cmstid完成到重叠地址的所有阻碍事务,而与ccredit或cid无关。从属装置必须以接收所有非阻碍事务的顺序使用相同cmstid完成到重叠地址的所有非阻碍事务,而与ccredit或cid无关。如果从属装置在使用相同cmstid接收到重叠事务的非阻碍事务之后接收阻碍事务,从属装置必须以接收两个事务的次序完成两个事务,而与ccredit或cid无关。阻碍事务不可使用相同cmstid绕过到重叠地址的非阻碍事务。如果从属装置在使用相同cmstid接收到重叠事务的阻碍事务之后接收阻碍事务,那么不要求从属装置以接收事务的次序完成事务。不允许非阻碍事务使用相同cmstid绕过到重叠地址的非阻碍事务。从属装置可以任何顺序使用非重叠地址完成事务,而与ccredit、cmstid或cid无关。核心侧代理必须遵循以下规则以确保到存储器的可共享区域的事务的正确性。核心侧代理必须位置到重叠地址的命令事务和读取响应事务的次序,而非ccredit、cmstid或cid无关。远侧代理必须遵循以下规则以确保到存储器的可共享区域的事务的正确性。如果远侧代理起始到核心侧代理的探查命令事务且随后使用重叠地址接收阻碍命令事务,那么远侧代理不可处理阻碍命令事务直到其从核心侧代理接收并处理探查响应事务为止。主控装置不可使用相同cmstid[11:0]和cid[11:0]组合在同一MBA接口上起始一个以上命令事务,直到已针对cmstid/cid对接收响应事务或写入状态为止。多核总线架构(MBA)协议的引入包含针对所有事务类型(包含所有命令种类(读取、写入、相干、消息)以及响应)共享同一物理信道的新颖技术。两个信道(即,事务属性信道(TAC)和事务数据信道(TDC))用于传输所有事务属性和数据而与事务类型无关。与单个方向上的数据流的宽度无关,无论对于写入命令、读取响应、相干响应等等均仅需要单个数据总线等等。图24说明代理2400(例如,图17中说明的核心侧1710或远侧代理1720)的框图。图24说明在本发明的MBA中使用最小信号线。后端过程2401表示代理的所有电路和系统。这可包含带有高速缓冲存储器、存储器、可控制外围设备和类似者的CPU。在此实例中,后端过程2401处置包含存储在信用计数器2402中的针对输出事务和信用返回花费的跟踪总线信用(递增和递减)的总线协议。图24还说明连接到后端过程2401的读取/写入存储器2403。读取/写入存储器2403表示在本发明中预期的受控操作的类型。在图24中说明的实例中,后端过程2401可根据总线事务从读取/写入存储器2403读取或写入到读取/写入存储器2403。后端过程2401可控制例如到输出装置或来自输入装置的单向数据流。后端过程2401经由包含此实例中的主控侧2410和从属侧2420的先前描述的MBA通信。在下文进一步描述其它可行配置。主控侧2410包含主控装置属性信道2411、主控装置数据信道2412和主控装置写入响应信道2413。代理2400在经由总线2414通信的所有信号(例如,上文在表5中列出的cvalid、ccredit、cid、ctype和cdata)上使用主控装置属性信道2411。代理2400在经由总线2415通信的所有信号(例如,上文在表12中列出的dvalid、did、dtype、dlast和ddata)上使用主控装置数据信道2412。代理2400在经由总线2416通信的所有信号(例如,上文在表15中列出的wvalid、wid和wstatus)上使用主控装置写入响应信道2413。主控侧2420包含从属装置属性信道2421、从属装置数据信道2422和从属装置写入响应信道2423。代理2400在经由总线2424通信的例如上文在表5中列出的creturn信号上使用从属装置属性信道2421。代理2400在经由总线2425通信的所有信号(例如,上文在表12中列出的dvalid、did、dtype、dlast和ddata)上使用从属装置数据信道2412。代理2400在经由总线2426通信的例如上文在表15中列出的wreturn信号上使用从属装置写入响应信道2423。图24说明代理2400包含操作主控装置和从属装置两者所需的所有部件。在本发明的MBA中,代理通常将以两个角色操作。举例来说,与外部存储器代理通信的代理将需要充当主控装置和从属装置两者。作为主控装置,此代理需要花费信用来开始读取或写入、供应读取或写入开始地址和数据长度、在事务是写入的情况下供应数据和接收信用返回。作为从属装置,此代理需要接受信用、响应于读取事务接受由存储器供应的数据且返回信用。此实例假设双向数据流。此实例一般需要图24中说明的所有部件。存在需要少于图24的所有部件的其它实例。考虑耦合到只读外围装置(例如,输出装置)的代理。作为主控装置,此代理需要花费信用来自开始写入、在需要的情况下供应读取或写入开始地址和数据长度、供应写入数据和接收信用返回。此代理还产生对只读周边装置的写入响应。此代理无需为从属装置,这是因为只读周边装置将不返回数据且因此将不需要控制总线事务。此代理将需要主控装置属性信道2411、主控装置数据信道2412和主控装置写入响应信道2423。考虑耦合到只读外围装置(例如,输入装置)的代理的另一实例。此代理需要花费信用来开始读取且接收信用返回。此代理需要作为从属装置操作以接受信用信用、响应于读取事务接受由存储器供应的数据且返回信用。此代理将需要主控装置属性信道2412、从属装置属性信道2421和从属装置数据信道2422和从属装置写入响应2423。此代理将不需要主控装置数据信道2412或主控装置写入响应信道2413。其它解决方案可在不同命令类型之共享若干信号(例如,读取和写入可共享地址引脚)。通常来说,这些其它解决方案使读取数据和写入数据分离。这是最大数据宽度(例如,512位和更大)下的线拥堵的最大源。本发明的MBA协议跨越相同引脚传输所有事务,而与事务类型无关,从而导致线的最大共享和最小物理额外开销。MBA协议仅需要两个信道来将事务从主控装置传输到从属装置。这些信道是:事务属性信道(TAC);和事务数据信道(TDC)。TAC传输所有事务属性,其包含地址、存储器属性和事务类型。TDC以一或多个阶段传输数据。因为所有数据类型使用相同的两个信道,所以本发明需要最小数目的物理线来传输全部范围的不同事务类型。由MBA协议提供的信道共享导致大互连和带有多个主控装置的从属装置的物理线拥堵的显著减少。这导致物理外壳的较低面积和功率、较高性能和较短设计循环。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1