一种SOC高速低功耗总线及转换方法与流程

文档序号:13216894阅读:415来源:国知局
技术领域本发明涉及智能终端芯片技术领域,特别涉及一种系统级芯片(SystemonChip,SOC)高速低功耗总线及转换方法。

背景技术:
目前在智能手机领域基于ARM处理器的基带SOC产品以及AP处理器产品占了90%的市场份额,AXI总线是ARM公司是最新系列产品采用的内部传输总线,其主要特点是相对于ARM9之前的AHB总线,将读、写总线分开为两套,并在读、写总线中将命令、数据设置了单独的数据通路,经过这些改进,使得AXI总线传输速率相对于AHB总线有质的提升,满足了目前先进处理器所需要的数据传输速率,提升了处理器的处理性能,大大增大了总线数据带宽。SOC总线基本上都包含命令信号、命令握手信号、数据信号、数据握手信号、以及响应信号和响应握手信号6个要素。以标准的64bit数据位宽的AXI总线为例,AXI总线的读、写总线总的位宽分别为130bit左右,其中命令总线54bit、数据总线74bit(读为66)、响应总线8bit。由于智能手机等便携式终端设备对SOC产品的功耗要求非常高,同时性能要求又不断增加,使得SOC设计对低功耗要求越来越高,对SOC内部总线设计提出了更高的挑战。现有的AXI总线传输速率高,但是功耗较大,占用的面积同样也较大,其在32位地址64bit数据位宽条件下读、写总线总的bit数量达到了300bit左右,同时所有总线的信号都是同步的,使得后端实现起来较复杂,频率不容易做高,功耗较大。

技术实现要素:
为解决以上技术问题,本发明基于目前ARMAXI总线的现状,提出一种SOC高速低功耗总线及转换方法。本发明一种SOC高速低功耗NOC总线,包括NOC写总线和NOC读总线:所述NOC写总线将写命令总线和写数据总线合并,使用写命令和写数据复用总线mix_wdata来传输命令与数据,并使用写命令有效信号wcmd_valid、写命令握手信号wcmd_ready、写数据有效信号mix_wdata_valid、写数据握手信号mix_wdata_ready四个信号来区分命令与数据;所述NOC读总线将读命令总线和读数据总线合并,使用读命令和读数据复用总线mix_rdata来传输命令与数据,并使用读命令有效信号rcmd_valid、读命令握手信号rcmd_ready、读数据有效信号mix_rdata_valid、读数据握手信号mix_rdata_ready四个信号来区分命令与数据。优选地,NOC读总线的mix_rdata是双向信号。优选地,当rcmd_valid与rcmd_ready同时有效时,mix_rdata传输方向为总线主设备master向总线从设备slave,如果mix_rdata_valid与mix_rdata_ready同时有效时,mix_rdata传输方向为总线从设备slave向总线主设备master。本发明一种AXI总线转高速低功耗NOC总线的方法,包括AXI写总线转NOC写总线,具体包括:步骤一:将AXI总线的写命令有效信号awvalid和写命令握手信号awready信号做与操作形成NOC总线的写命令有效信号wcmd_valid;步骤二:将AXI总线的写命令握手信号awready与NOC总线的写命令握手信号wcmd_ready相连接;步骤三:当NOC总线的写命令有效信号wcmd_valid有效时,将NOC总线的写命令和写数据复用总线mix_wdata使用选择器用于发送AXI总线的命令,包括:写命令IDawid、写地址awaddr、写数据突发长度awlen、写数据格式awsize、写数据突发类型awburst、写数据锁定访问awlock、写数据缓存访问awcache、和写数据保护访问awproct;当wcmd_valid无效时,将NOC总线的写命令和写数据复用总线mix_wdata使用选择器用于发送AXI写总线数据wdata;步骤四:当NOC总线的写命令有效信号wcmd_valid有效时,将AXI总线的写命令握手信号wready信号输出0,否则将AXI总线的wready信号直接和NOC总线的写数据握手信号mix_wdata_ready相连接;步骤五:当NOC总线的写命令有效信号wcmd_valid有效时,将NOC总线的写数据有效信号mix_wdata_valid信号输出0否则将NOC总线的写数据有效信号mix_wdata_valid信号直接和AXI总线的写总线数据有效wvalid信号相连接;步骤六:直接将AXI总线和NOC总线的响应有效信号bvalid、响应类型bresp、响应IDbid和响应准备信号bready直接相连接;优选地,包括AXI读总线转NOC读总线,具体包括:步骤一:将AXI总线的读数据有效信号arvalid和读数据握手信号arready做与操作形成NOC总线的读命令有效信号rcmd_valid;步骤二:将AXI总线的读数据握手信号arready与NOC读总线的读命令握手信号rcmd_ready相连接;步骤三:当NOC总线的读命令有效信号rcmd_valid有效时,将NOC读总线的读命令和读数据复用总线mix_rdata使用选择器用于发送AXI读总线的命令,包括:读命令IDarid、读地址araddr、读数据突发长度arlen、读数据格式arsize、读数据突发类型arburst、读数据锁定访问arlock、读数据缓存访问arcache和读数据保护访问arproct,当rcmd_valid无效时,将NOC读总线的读命令和读数据复用总线mix_rdata处于高阻状态;步骤四:将NOC读总线的读数据握手信号mix_rdata_ready使用寄存器在每一个时钟周期寄存AXI总线的读命令握手信号rready;步骤五:将NOC总线的读响应类型resp、最后一个读数据指示rlast、写数据IDrid和mix_rdata作为FIFO的输入数据,并且将NOC总线的读数据有效信号mix_rdata_valid与读数据握手信号mix_rdata_ready作为FIFO的写使能信号;步骤六:将AXI总线的读命令有效信号rvalid和读命令握手信号rready作为FIFO的读使能信号,并将AXI总线的读响应类型resp、最后一个读数据指示rlast、读数据IDrid和mix_rdata信号对应于FIFO的输出;步骤七:当NOC读总线的读命令有效信号rcmd_valid有效时,AXI读总线的rvalid信号置0,以及当FIFO没有数据时rvalid信号也置0,否则置1。本发明一种高速低功耗NOC总线转AXI总线的方法,包括NOC写总线转AXI写总线,具体包括:步骤一:将NOC写总线的写命令握手信号wcmd_ready设置为寄存器,并作为输出信号,直接在每个时钟寄存AXI的读数据握手信号awready;步骤二:内置一个写命令FIFO将NOC的写命令和写数据复用总线mix_wdata存入FIFO中,NOC总线的写命令有效信号wcmd_valid和写命令握手信号wcmd_ready信号同时有效时作为FIFO的写使能;步骤三:使命令FIFO的空满输出作为AXI总线的写命令有效信号awvalid的输出,使AXI总线的awvalid信号以及写命令握手信号awready信号同时有效时作为FIFO的读使能;步骤四:将NOC总线的写数据有效信号mix_wdata_ready作为一个寄存器以及输出信号,直接寄存AXI总线的写总线数据握手wready;步骤五:内置一个写数据FIFO将NOC的写命令和写数据复用总线mix_wdata存入FIFO中,并以NOC总线的写数据有效信号mix_wdata_valid和写数据握手信号mix_wdata_ready作为FIFO的写使能;步骤六:让写数据FIFO的空满输出作为AXI总线wvalid的输出,让AXI总线的写总线数据有效信号wvalid以及写总线数据握手信号wready作为数据FIFO的读使能;步骤七:将AXI总线wvalid和wready信号作为数据FIFO的读使能。优选地,包括NOC读总线转AXI读总线,具体包括:步骤一:将NOC读总线的读命令握手信号rcmd_ready设置为寄存器,并作为输出信号,直接在每个时钟寄存AXI的读数据握手信号arready;步骤二:内置一个写命令FIFO将NOC的读命令和读数据复用总线mix_rdata存入FIFO中,NOC总线的读命令有效信号rcmd_valid和读命令握手信号rcmd_ready同时有效时作为FIFO的输入写使能;步骤三:让命令FIFO的空满标志输出作为AXI总线读数据有效信号arvalid的输出,让AXI总线的arvalid信号以及读数据握手信号arready作为命令FIFO的读使能;步骤四:读命令有效信号rcmd_valid将AXI总线的读数据握手信号ready置0,否则直接将ready与mix_rdata_ready信号相连;步骤五:当读命令有效信号rcmd_valid有效时将读命令和读数据复用总线mix_rdata信号置为高阻态,否则直接将mix_rdata与AXI总线的读总线数据rdata相连接;步骤六:当读命令有效信号rcmd_valid有效时将NOC总线的读数据有效信号mix_rdata_valid置0,否则直接将mix_rdata_valid与AXI总线的读命令有效信号rvalid信号相连接;步骤七:直接将NOC总线的最后一个读数据指示rlast、写数据IDrid、读响应类型rresp与AXI总线的rlast、写数据IDrid、读响应类型rresp信号相连接。本发明通过吸收AXI总线一些传输特点,通过修改总线时序,缩减总线传输线数量提高了NOC总线频率,降低了总线功耗,提升了性能,有较大的工程实现以及商业价值。附图说明图1为本发明NOC总线写时序示意图;图2为本发明NOC总线读时序示意图;图3为本发明AXI写总线转NOC写总线结构图;图4为本发明AXI读总线转NOC读总线结构图;图5为本发明NOC写总线转AXI写总线结构图;图6为本发明NOC读总线转AXI读总线结构图。具体实施方式下面将结合本发明附图,对本发明实施例中的技术方案进行清楚、完整地描述。下面对本发明所用到的术语进行统一解释:master:总线主设备;slaver:总线从设备;FIFO:先出先出队列;本发明实施例中AXI写总线所涉及的一些信号:awid:写命令IDawaddr:写地址awlen:写数据突发长度awsie:写数据格式awburst:写数据突发类型awlock:写数据锁定访问;awcache:写数据缓存访问awproct:写数据保护访问adata:写总线数据本发明实施例中AXI读总线所涉及的一些信号:arid:读命令IDaraddr:读地址arlen:读数据突发长度arsie:读数据格式arburst:读数据突发类型arlock:读数据锁定访问;arcache:读数据缓存访问arproct:读数据保护访问rdata:读总线数据本发明实施例中NOC总线和AXI总线所涉及的共同的一些信号:resp:读响应类型;rlast:最后一个读数据指示;tid:读数据IDrid:写数据IDbvalid:响应有效信号bresp:响应类型bid:响应ID;bready:响应准备信号;基于总线的6要素以及SOC设计常识,要降低功耗和占用面积,主要的方法是降低总线信号的数量,但一味降低总线信号数量会导致传输带宽的降低,因此在总线信号数量和总线代码之间取得一个平衡是本发明的核心思想。本发明通过研究目前常用SOC总线,综合各种总线的相关特点,提供基于AXI总线的低功耗总线及转换的方法。本发明的高速低功耗NOC总线具体包括:NOC写总线和NOC读总线;NOC写总线将写命令总线和写数据总线合并,使用写命令与写数据复用信号线mix_wdata来传输命令与数据,并使用wcmd_valid、wcmd_ready、mix_wdata_valid、mix_wdata_ready四个信号来区分命令与数据。NOC写总线的时序如图1所示,其基本的传输时序和AXI总线类似。如上所示的NOC写总线,相对于AXI写总线缩减了AXI总线的地址信号线,命令信号线。NOC总线中的mix_wdata信号在NOC总线中负责进行命令和数据的时分复用传输。NOC读总线将读命令总线和读数据总线合并,使用mix_rdata来传输命令与数据,并使用rcmd_valid、rcmd_ready、mix_rdata_valid、mix_rdata_ready四个信号来区分命令与数据。NOC读总线的时序如图2所示,其基本的传输时序和AXI总线类似,特别地,与NOC写总线不同的是NOC读总线的mix_rdata是双向输入输出信号线。特别地,当rcmd_valid与rcmd_ready同时有效时,mix_rdata传输方向为master向slave,如果mix_rdata_valid与mix_rdata_ready同时有效时,mix_rdata传输方向为slave向master。总线宽度可以根据需要配置成32、64、128bit等;这里举例说明用64bit数据位宽的常用配置。表3列举了NOC总线和AHB总线、AXI总线的在64bit数据位宽配置下主要的信号对比。对于AHB总线来说向读写访问总线复用所需要的信号最少,但却有传输带宽低的问题,本发明专利的NOC总线同样将读写总线分开,同时将命令和数据总线复用在同等配置下相对AXI总线节约了30%的信号线。表3:NOC总线和AHB总线、AXI总线主要信号(线)对比本发明NOC总线与AXI总线相比,在64bit位宽下削减了30%的总线数量,从ASIC设计原理可以很简单的得出NOC总线可以减少30%的面积,提升30%的频率,降低30%的功耗。为了使上述NOC总线能够与目前主流的AXI总线进行交互,有必要将NOC总线与AXI总线进行转换,因此,本发明能用于目前流行的基于AXI总线的SOC,本发明提供一种AXI总线转高速低功耗NOC总线的方法。优选地,包括AXI总线转NOC总线,提供AXI总线到NOC总线的转换,具体包括:如图3和图4所示,AXI总线转NOC总线具体包括是AXI写总线转NOC写总线和/或AXI读总线转NOC读总线;所述AXI写总线转NOC写总线实现步骤如下:步骤一:直接将AXI总线的信号awvalid和awready信号做与操作形成NOC总线的wcmd_valid信号,然后执行步骤二;步骤二:直接将AXI总线的awready信号与NOC总线的wcmd_ready信号相连接,然后执行步骤三;步骤三:当NOC总线的wcmd_valid有效时,将NOC总线的数据总线mix_wdata使用选择器用于发送AXI总线的命令,包括:awid,awaddr,awlen,awsize,awburst,awlock,awcache,awproct,当wcmd_valid无效时,将NOC总线的数据总线mix_wdata使用选择器用于发送AXI总线的数据wdata,然后执行步骤四;步骤四:当NOC总线的wcmd_valid有效时,将AXI总线的wready信号输出0,否则将AXI总线的wready信号直接和MOC总线的mix_wdata_ready信号相连接,然后执行步骤五;步骤五:当NOC总线的wcmd_valid有效时,将NOC总线的mix_wdata_valid信号输出0否则将NOC总线的mix_wdata_valid信号直接和AXI总线的wvalid信号相连接,然后执行步骤六;步骤六:直接将AXI总线和NOC总线的bvalid、bresp、bid,wstrob信号直接相连接;所述AXI读总线转NOC读总线实现步骤如下:步骤一:直接将AXI总线的信号arvalid和arready信号做与操作形成NOC总线的rcmd_valid信号,然后执行步骤二;步骤二:直接将AXI总线的arready信号与NOC读总线的rcmd_ready信号相连接,然后执行步骤三;步骤三:当NOC总线的rcmd_valid有效时,将NOC读总线的数据总线mix_rdata使用选择器用于发送AXI读总线的命令,包括:arid,araddr,arlen,arsize,arburst,arlock,arcache,arproct,当rcmd_valid无效时,将NOC读总线的数据总线mix_rdata处于高阻状态,然后执行步骤四;步骤四:将NOC读总线的mix_rdata_ready信号使用寄存器在每一个时钟周期寄存AXI总线的rready信号,然后执行步骤五;步骤五:将NOC总线的resp,rlast,rid,mix_rdata作为FIFO的输入数据,并且当NOC总线的mix_rdata_valid与mix_rdata_ready信号作为FIFO的写使能信号,然后执行步骤六;步骤六:将AXI总线的rvalid信号和rready信号作为图4中FIFO的读使能信号,并将AXI总线的resp,rlast,rid,mix_rdata信号对应与FIFO的输出,然后执行步骤七;步骤七:当NOC读总线的rcmd_valid有效时,AXI读总线的rvalid信号置0,以及当图4中FIFO没有数据时rvalid信号也置0,否则置1;为了使上述NOC总线能够与目前主流的AXI总线进行交互,有必要将NOC总线与AXI总线进行转换,因此,本发明能用于目前流行的基于AXI总线的SOC,本发明提供一种高速低功耗NOC总线转AXI总线的方法。优选地,包括NOC总线转AXI总线,提供NOC总线到AXI总线的转换,具体包括:如图5和图6所示,NOC总线转AXI总线包括NOC写总线转AXI写总线和/或NOC读总线转AXI读总线;所述NOC写总线转AXI写总线实现步骤如下:步骤一:将NOC写总线的wcmd_ready设置为寄存器,并作为输出信号,直接在每个时钟寄存AXI的awready信号,然后执行步骤二;步骤二:内置一个写命令FIFO将NOC的数据与命令复用总线mix_wdata存入FIFO中,NOC总线的wcmd_valid和wcmd_ready信号同时有效时作为FIFO的输入是写使能,然后执行步骤三;步骤三:让命令FIFO的空满输出作为AXI总线awvalid的输出,让AXI总线的awvalid信号以及awready信号作为命令FIFO的读使能,然后执行步骤四;步骤四:将NOC总线的mix_wdata_ready信号作为一个寄存器以及输出信号,直接寄存AXI总线的wready信号,然后执行步骤五;步骤五:内置一个写数据FIFO将NOC的总线的数据与命令复用总线mix_wdata存入FIFO中,并以NOC总线的mix_wdata_valid和mix_wdata_ready作为FIFO的写使能,然后执行步骤六;步骤六:让写数据FIFO的空满输出作为AXI总线wvalid的输出,让AXI总线的wvalid信号以及wready信号作为数据FIFO的读使能,然后执行步骤七;步骤七:将AXI总线wvalid和wready信号作为数据FIFO的读使能;所述NOC读总线转AXI读总线实现步骤如下:步骤一:将NOC读总线的rcmd_ready设置为寄存器,并作为输出信号,直接在每个时钟寄存AXI的arready信号,然后执行步骤二;步骤二:内置一个写命令FIFO将NOC的读数据与读命令复用总线mix_rdata存入FIFO中,NOC总线的rcmd_valid和rcmd_ready信号同时有效时作为FIFO的输入写使能,然后执行步骤三;步骤三:让命令FIFO的空满标志输出作为AXI总线arvalid的输出,让AXI总线的arvalid信号以及arready信号作为命令FIFO的读使能,然后执行步骤四;步骤四:当读命令有效信号rcmd_valid将AXI总线的ready置0,否则直接将ready与mix_rdata_ready信号相连,然后执行步骤五;步骤五:当读命令有效信号rcmd_valid有效时将mix_rdata信号置为高阻态,否则直接将mix_rdata与AXI总线的rdata相连接,然后执行步骤六;步骤六:当读命令有效信号rcmd_valid有效时将NOC总线的mix_rdata_valid信号置0,否则直接将mix_rdata_valid信号与AXI总线的rvalid信号相连接,然后执行步骤七;步骤七:直接将NOC总线的rlast、rid、rresp信号与AXI总线的rlast、rid、rresp信号相连接;按照本发明的发明思路,通过仿真发现:虽然读命令、读数据、写命令、与写数据传输都延迟1个clock,但在实际的SOC总线传输过程中,都是大量的连续burst或者流水线形式的传输,因此和标准的AXI总线对比,在同等频率下性能损失大约为5%左右;相对于AXI总线,NOC总线削减了30%的信号线(64bit数据位宽模式下),也因此节约了30%的面积,降低了约30%的功能,同时能够提升大约30%的性能(频率提升30%);总体来看,在同等功耗以及同等面积的情况下,NOC总线可以提升约25%的性能,有显著的工程实现价值。若继续以面积和功耗为优化目的,在本发明基础止,还可以继续优化NOC总线,将AXI的响应通道也进行复用,甚至可以进一步的将AXI总线的读写分开优化成读写总线组合,类似AMBA的AHB总线。显然,本发明所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1