CN101477505B - 一种主、从设备之间通过总线传输数据的方法 - Google Patents

一种主、从设备之间通过总线传输数据的方法 Download PDF

Info

Publication number
CN101477505B
CN101477505B CN2008102405558A CN200810240555A CN101477505B CN 101477505 B CN101477505 B CN 101477505B CN 2008102405558 A CN2008102405558 A CN 2008102405558A CN 200810240555 A CN200810240555 A CN 200810240555A CN 101477505 B CN101477505 B CN 101477505B
Authority
CN
China
Prior art keywords
data
slave unit
main equipment
transmission
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2008102405558A
Other languages
English (en)
Other versions
CN101477505A (zh
Inventor
林川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Zhonggan Microelectronics Co Ltd
Original Assignee
Wuxi Vimicro Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuxi Vimicro Corp filed Critical Wuxi Vimicro Corp
Priority to CN2008102405558A priority Critical patent/CN101477505B/zh
Publication of CN101477505A publication Critical patent/CN101477505A/zh
Application granted granted Critical
Publication of CN101477505B publication Critical patent/CN101477505B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

一种主、从设备之间通过总线传输数据的方法,主设备和从设备之间通过总线建立地址通道、读通道和写通道,各个通道具有各自的握手信号;在每一次数据传输中,主设备先在地址通道上向从设备发送传输请求,并输出要传输数据的地址、大小和读写状态信息,所述从设备采样到所述地址、大小和读写状态信息,然后通过地址通道向所述主设备反馈握手信号;之后,所述主设备和从设备利用读通道或写通道上的握手信号和数据信号完成此次读数据或写数据的传输;在检测到所述从设备在地址通道反馈的握手信号后,所述主设备即可在地址通道上向所述从设备发出下一次的传输请求。本发明方法可以提高系统的数据吞吐率。

Description

一种主、从设备之间通过总线传输数据的方法
技术领域
本发明涉及数据传输技术,具体地说,是涉及一种主、从设备之间通过总线传输数据的方法。
背景技术
片上集成系统(System On Chip,SoC)存在多个功能模块如处理器、DMA和硬件加速器等,需要访问片外同步动态随机存储器(Synchronous DynamicRandom Access Memory,SDRAM,又称同步DRAM)。同步DRAM为新一代动态存储器,它可以与CPU总线使用同一个时钟。
片上总线存在多个模块同时请求某一存储资源时,需要总线仲裁器来判断路由,这带来了总线上多个时钟周期的传输延迟。对于复杂的存储器,如SDRAM或DDR控制器,为了满足器件的传输协议,也需要多个时钟周期来进行传输的解析和处理。这样,每次传输的总时间,相当于总线和存储器控制逻辑的延迟,加上传输实际数据需要的时间。
由于传输实际数据需要的时间取决于数据本身的大小和存储器接口的位宽,在芯片PAD定义后无法改变。所以提高数据的吞吐率,必须减少总线和存储器控制逻辑的延迟。
为了提高数据吞吐率,总线仲裁器和存储器控制器(属于从设备)一般采用流水线设计,即当有连续的多个请求从功能模块(主设备)连续发出时,每级流水线都可以处理一个访问请求,所以当第一个访问请求经过总线和存储器控制逻辑的延迟后,其数据传输结束,第二个请求也到达存储器接口,可以连续地做数据传输。理想状况下,存储器的数据可以连续访问,大大提高了系统的数据带宽。
但是,传统的总线协议如AHB2.0协议,传输访问的命令和传输的数据采用相同的握手信号,即上一次传输的数据没有完成,则下一次传输访问的命令不能发出。这样,对于同一个模块请求而言,每次传输时间必须是总线和存储器控制逻辑的延迟,加上传输实际数据需要的时间。如果总线上不能够提供足够多的请求设备,那么总线仲裁器和存储器控制器的流水线将无法充分利用,系统的数据带宽也随之降低。
发明内容
本发明所要解决的技术问题是在于需要提供一种主、从设备之间通过总线传输数据的方法,以提高系统的数据吞吐率。
为了解决上述问题,本发明提供了一种总线,使主设备(master)如功能模块在当前传输访问的数据还未从设备(slave)如存储器返回前,能够提前发出下一笔传输的命令。那么这样master就可以发出多个请求给从设备的流水线处理。虽然第一笔传输数据需要等待总线和存储器控制逻辑的延迟,但是后继传输数据可以连续访问存储器,大大提高了系统的数据带宽。
基于以上构思,本发明提供了一种主、从设备之间通过总线传输数据的方法,包括:
主设备和从设备之间通过总线建立地址通道、读通道和写通道,各个通道具有各自的握手信号;
在每一次数据传输中,主设备先在地址通道上向从设备发送传输请求,并输出要传输数据的地址、大小和读写状态信息,所述从设备采样到所述地址、大小和读写状态信息,然后通过地址通道向所述主设备反馈握手信号;之后,所述主设备和从设备利用读通道或写通道上的握手信号和数据信号完成此次读数据或写数据的传输;
在检测到所述从设备在地址通道反馈的握手信号后,所述主设备即可在地址通道上向所述从设备发出下一次的传输请求。
进一步地,上述方法还可具有以下特点:主设备和从设备在地址通道上传输以下信号:
传输请求信号avalid是主设备在地址通道发出的握手信号,该信号有效时,表示主设备发起一次到从设备的数据传输请求;
地址信号addr,表示本次数据传输的起始地址;
长度信号len,表示每次突发要传输的数据大小,单位为笔数;
读写状态信号,表示本次数据传输是读传输还是写传输,读传输指主设备从从设备读出数据,写传输指主设备将数据写入从设备;
请求结束信号aready是从设备在地址通道反馈的握手信号,该信号有效时,代表从设备已完成对此次传输请求的地址、大小和读写状态的采样;
从设备没有反馈请求结束信号aready前,主设备输出的传输请求信号avalid、地址信号addr、长度信号len和读写状态信号必须保持。
进一步地,上述方法还可具有以下特点:主设备和从设备在读通道上传输以下信号:
读请求信号rvalid是从设备在读通道发出的握手信号,该信号有效时,代表从设备已准备好读数据,向主设备发出请求,等待主设备采样;
读数据信号rdata表示从设备输出的读数据;
读结束信号rready是主设备反馈的握手信号,该信号有效时,表示读数据已被主设备采样,下一时刻从设备可输出下一笔数据,主设备未反馈该握手信号前,从设备输出的读请求信号rvalid和读数据信号rdata必须保持。
进一步地,上述方法还可具有以下特点:主设备和从设备在写通道上传输以下信号:
写请求信号wvalid是主设备在写通道发出的握手信号,该信号有效时,代表主设备已经准备好写数据,向从设备发出写请求,等待从设备采样;
写数据信号wdata表示要主设备输出的写数据;
写结束信号Wready是从设备反馈的握手信号,该信号有效时,代表写数据已被从设备采样,下一时刻主设备可输出下一笔数据,从设备未反馈该握手信号前,主设备输出的写请求信号wvalid和写数据信号wdata必须保持。
进一步地,上述方法还可具有以下特点:
所述主设备有多个且分时复用总线,从设备不支持同一主设备的数据传输的乱序时,所述地址通道、写通道和读通道上均还包括一组信号线,该组信号线用于在主设备发起传输请求和写请求以及从设备发起读请求时传送该次传输的主设备的标识;或者
所述主设备有多个且分时复用总线,从设备支持同一主设备的数据传输的乱序时,所述地址通道、写通道和读通道上均还包括一组信号线,该组信号线用于在主设备发起传输请求和写请求以及从设备发起读请求时传送该次传输及主设备的标识;或者
所述从设备支持同一主设备的数据传输的乱序,所述主设备有一个或有多个但通过各自总线与所述从设备连接时,所述地址通道、写通道和读通道上均还包括一组信号线,该组信号线用于在主设备发起传输请求和写请求以及从设备发起读请求时传送该次传输的标识;或者
所述主设备有多个且使用各自的总线与所述从设备进行数据传输时,所述从设备根据收到传输请求的线路确定是哪个主设备发来的传输请求并记录该主设备的标识。
进一步地,上述方法还可具有以下特点:
所述从设备收到所述主设备发送的传输请求后,先对该主设备通过地址通道传输的数据进行容错性的检查,如果检查通过,再采样此次的传输请求信息;如检查不通过,所述从设备向主处理器发起中断,主处理器通过程序容错处理,控制出错的所述主设备更正错误的数据操作。
进一步地,上述方法还可具有以下特点:
所述从设备支持相同主设备和/或不同主设备的数据传输的乱序,在缓存了多条传输请求信息时,所述从设备在进行数据传输的仲裁前对这些传输请求进行地址重叠检查,并标记存在地址重叠的传输请求,在进行数据传输时,存在地址重叠的同一组传输请求中的多个传输请求必须按照这些传输请求到达所述从设备的先后顺序来进行数据传输处理。
进一步地,上述方法还可具有以下特点:
所述从设备进行地址重叠检查,并标记存在地址重叠的传输请求后,在进行数据传输的仲裁时,将所有存在地址重叠的传输请求排除,只对缓存的其余传输请求进行仲裁,如果没有其他的传输请求,则将最先到达所述从设备的传输请求赋予最高优先级,进行该传输请求的数据传输。
进一步地,上述方法还可具有以下特点:
所述从设备是在可以接受新的数据传输时,进行所述地址重叠检查,并在检查后,进行所述数据传输的仲裁,允许写乱序和读乱序。
进一步地,上述方法还可具有以下特点:
所述从设备为包含SDRAM的存储设备,所述从设备记录该SDRAM的各块是否充电完毕以及该块中已被激活的行,并记录前一次数据传输所访问该SDRAM的块地址和其读写状态,在对多个缓存的传输请求进行仲裁时按以下方式处理:
首先查找有无和所述SDRAM当前已预充电的块、已激活的行相同地址的传输请求,如果有,将其中最先到达的传输请求赋予最高优先级,如果没有,继续下一步;
查找与前一访问的块地址不同的传输请求,如果有,将其中最先到达的传输请求赋予最高优先级,如果没有,继续下一步;
查找与前一访问的读写状态相同的传输请求,如果有,将其中最先到达的传输请求赋予最高优先级,如果没有,继续下一步;
根据发送传输请求的主设备的优先级,将优先级最高的主设备发起的最先到达所述从设备的传输请求赋予最高优先级;
所述从设备选择出最高优先级的传输请求后,进行该最高优先级传输请求的数据传输,允许发起该传输请求的主设备访问所述SDRAM。
本发明提出的一种支持主设备连续发出读写请求的总线协议,采用较少的端口交互,可以有效地利用总线仲裁器和存储器控制器流水线特性,提高了系统的数据吞吐率。进一步地,本发明还针对多种master与一个slave间进行数据传输的应用场景,将大部分的逻辑处理集中在slave侧进行,同时将master和slave之间数据传输的总线协议设计得非常简洁,可以适应多种master与一个slave间进行数据传输的应用场景,可以提高传输效率,并具有良好的性价比和很好的兼容性。
附图说明
图1是本发明实施例主设备和从设备间基于总线的交互通道的示意图;
图2是单次读传输的一个示例的时序图;
图3是单次写传输的一个示例的时序图;
图4是多次交替读、写传输的一个示例的时序图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式。
先介绍一下本实施例主设备与从设备之间的总线协议。如图1所示,将主设备(master)和从设备(slave)之间通过总线的交互信号分为3个通道(channel),分别是地址通道(Address Channel)、写通道(Write Channel)和读通道(Read Channel),其中:
地址通道,用于在主设备和总线之间传输地址及相关信息;
写通道,用于在主设备和总线之间传输写数据相关信息;
读通道,用于在主设备和总线之间传输读数据相关信息。
对于SDRAM等存储器,总线分为地址总线和数据总线,地址通道的信号在地址总线传输,写通道和读通道的信号在各自的数据总线上传输。
表1、地址通道的信号示意
  信号   信号源   总线宽度   说明
  avalid   主设备   1 the master request data access to slave
  addr   主设备   32   the access start address
  len   主设备   4 the number of beat transfers that occur withineach burstb0000:1b0001:2b0010:3 … …b1101:14b1110:15b1111:16
  write   主设备   1   write enable,1:write;0:read
  aready   从设备   1 the address information is captured by MARB
表1示出了地址通道的信号,其中:
avalid(传输请求信号)有效时,表示主设备master发起一次到slave的数据传输请求,占用1个总线宽度即1bit,是master在地址通道发出的握手信号;
addr(地址信号)表示本次数据传输的起始地址,占用32比特,也可以是8比特、16比特或64比特等;
len(长度信号)表示每次突发要传输的数据大小,单位为笔数,占用4比特,当值为0000时,表示有1笔(此处是32bit)数据要传输,当值为0001时,表示有2笔数据要传输,依次类推,当值为1111时,表示有16笔数据要传输;
write(写信号)表示本次数据传输是读传输还是写传输,读传输是master从slave读出数据,写传输是master将数据写入slave。本实施例中,该信号有效表示写传输,无效表示读传输,占用1比特;当然也可以采用读信号read,在有效时表示读传输,在无效时表示写传输,write和read可以统称为读写状态信号;
aready(请求结束信号)是slave反馈的握手信号,该信号有效时,代表slave已经响应该请求,len、write和addr信号携带的信息已被slave采样。
表2、写通道的信号示意
  信号名称   信号源   总线宽度   含义
  wvalid   主设备   1   the write data from master is ready
  wstrb   主设备   4 the write strobe,indicates which byte lanes toupdate in memory.wstrb[n](n=0,1,2,3)1:the byte write is masked,can not update inmemory0:the byte write is enable,update into memory
  wdata   主设备   32   the write data
  wready   从设备   1 the write data has been captured by slave
表2中:
wvalid(写请求信号)是master在写通道发出的握手信号,该信号有效时,代表master已经准备好写数据,向slave发出写请求,等待slave采样,占用1比特;
wdata(写数据信号)表示要master输出的写数据,占用32比特。
Wstrb(写屏蔽信号,可选)支持选择Byte写操作,占用4比特,每比特对应于32位数据中的一个字节,当某比特取值为1时,表示相应字节不需要写入从设备,为0时,表示相应字节需要写入从设备。
Wready(写结束信号)是slave反馈的握手信号,该信号有效时,代表写数据已被slave采样,下一时刻,master可以发出下一笔数据。当slave没有响应该请求即反馈该握手信号时,wvalid和wdata等控制信号必须保持,wready占用1比特。
表3、读通道的信号示意
  信号名称   信号源   总线位宽   说明
  rvalid   从设备   1 read data from slave is ready for master to get
  rdata   从设备   32   the read data
  rready   主设备   1 the read data has been captured by master
其中:
rvalid(读请求信号)是slave在读通道发出的握手信号,该信号有效时,代表slave已准备好读数据,向master发出请求,等待maste采样;
rdata(读数据信号)表示slave输出的读数据;
rready(读结束信号)是master反馈的握手信号,该信号有效时,表示读数据已被master采样,下一时刻,slave可以发出下一笔数据。当master没有响应该请求即反馈该握手信号时,rvalid和rdata等控制信号必须保持。
图2示出了单次读传输的一个示例的时序图,图中clk表示时钟信号。
当某master要从slave读取数据时,将地址通道的传输请求信号avalid置为有效,将写信号write置为无效,同时通过地址信号addr输出读数据(文中,读数据用于表示master从slave读取的数据)的首地址,通过长度信号len输出此次读数据的笔数,以4笔为例;
slave没有响应该请求前,avalid、len、write和addr等控制信号必须保持。Slave采样了此次读数据的首地址、笔数和读写状态(即是读还是写)后,通过地址通道向master反馈握手信号即将请求结束信号aready置为有效;
slave发出握手信号后,向master发出读请求即将读通道的读请求信号rvalid置为有效,同时通过读数据信号rdata输出第1笔读数据;
在检测到master反馈的握手信号即读结束信号rready有效前,rvalid、rdata信号必须保持;在检测到读结束信号rready有效后,slave再输出第2笔读数据,如此一直到输出最后1笔读数据且读结束信号rready有效,就完成了此次读传输的整个过程。
如图2所示,DA0,DA1,DA2和DA3是要读出首地址为A的4笔读数据。Master分别在第35ns,40ns,45ns和55ns采样到这些数据。
图2及后述的示例中,是在clk时钟的上升沿进行信号的采样,当然在另一实施例中,也可以在下降沿进行。
图3示出了单次写传输的一个示例的时序图,图中clk表示时钟信号。
当某master要向slave写数据时,将地址通道的传输请求信号avalid置为有效,将写信号write置为有效,同时通过地址信号addr输出写数据(文中,写数据用于表示master向slave写入的数据)的首地址,通过长度信号len输出此次写数据的笔数,仍以4笔为例;
slave没有响应该传输请求前,avalid、len、write和addr等控制信号必须保持。Slave采样了此次写数据的首地址、笔数和读写状态后,通过地址通道向master反馈握手信号即将请求结束信号aready置为有效;
master收到握手信号后,向slave发出写请求即将写通道的写请求信号wvalid置为有效,同时通过写数据信号wdata输出第1笔写数据;
在检测到slave反馈的握手信号即写结束信号wready有效前,wvalid、wdata信号必须保持;检测到写结束信号wready有效后,master再输出第2笔写数据,如此一直到输出最后1笔写数据且写结束信号wready有效,就完成了此次写传输的整个过程。
如图3所示,DA0,DA1,DA2和DA3是写入首地址为A的4笔写数据。Slave分别在第30ns,40ns,45ns和50ns采样到这些数据。
本发明的地址通道、读通道和写通道各自使用自己的握手信号,因此可以支持传输请求和实际的数据传输的并行处理,使得主设备不需要等待当前传输请求的数据传输完成,只需知道该数据传输请求已进入从设备中如总线仲裁器的流水线(即aready=1),就可以发出下一次数据的传输请求。每笔传输的数据大小由len确定。
图4示出了多次读、写交替传输的一个示例的时序图,图中clk表示时钟信号,多次读传输或者多次写传输的过程是类似的。
在该过程中,master先从slave读两次数据,再向slave写入一次数据。因为读数据和写数据过程中的信号已在上文中详细描述,这里主要对各次读、写过程的配合进行描述。该交替传输的过程包括:
在地址通道上,master先向slave发出第一次传输请求,表示为读操作并输出读数据的首地址A和数据大小(len=0011),在检测到slave反馈的握手信号之后,再向slave发出第二次传输请求,表示为读操作并输出读数据的首地址B和数据大小(len=0000),在检测到slave反馈的握手信号之后,该master再向slave发出第三次传输请求,表示为写操作并输出要写入数据的首地址C和数据大小(len=0011);
在读通道上,slave在地址通道向master反馈了对应于第一次传输请求的握手信号后,向master发出读请求并输出第一次传输请求所请求传输的第1笔读数据,收到master在读通道反馈的握手信号后再输出第2笔读数据,如此完成共4笔读数据的传输。在第一次数据传输完成且slave通过地址通道向master反馈了对应于第二次传输请求的握手信号后,slave再次向master发出读请求并输出第二次传输请求所请求传输的第1笔读数据,收到master在读通道反馈的握手信号后即完成第二次数据传输。
在写通道上,slave在地址通道向master反馈了对应于第三次传输请求的握手信号后,master向slave发出写请求并输出第三次传输请求所请求传输的第1笔写数据,收到slave在写通道反馈的握手信号后再输出第2笔写数据,如此完成共4笔写数据的传输。
如图4所示,DA0,DA1,DA2和DA3是首地址为A的4笔读数据。master分别在第30ns,40ns,45ns和50ns采样到这些数据。DB0是读出地址为B的1笔数据,master在第60ns采样到DB0。DC0,DC1,DC2和DC3分别是首地址为C的4笔写数据,slave分别在第55ns,60ns,65ns和70ns采样到这些数据。图中这些请求传输的master是同一master,可以看出一个master在当前传输的数据还没完成前,只要该传输的地址等信息已经被slave采样,就可以继续发出下一个传输请求。
上述方案中,地址通道、读通道和写通道可以并行工作,三个通道都有各自的握手机制,使master在当前传输访问的数据还未从slave如存储器返回前,能够提前发出下一次传输的请求。如此,master就可以发出多个传输请求给从设备的流水线处理。虽然第一次传输数据需要等待从设备如总线和存储器控制逻辑的延迟,但是后继的传输请求可以连续访问从设备,大大提高了系统的数据带宽。同时,由于通道都有各自的握手机制,相互不受时序影响,有利于在传输时根据通道自身的逻辑需要插入寄存器,提高整体总线时钟频率,又不会增加其他通道的延迟。
在多个master与一个slave进行数据传输时,可以使用各自的总线,slave可以根据连线来确定是哪个master发来的传输请求并记录其标识(ID);或者,多个master也可以分时复用同一个总线,且slave不支持对数据传输的乱序时,可以在地址通道、写通道和读通道上均增加用于传输master的标识的一组信号线,在主设备在发出传输请求和写请求,从设备在发出读请求的同时均输出master的标识。每个master都有唯一的标识,即master对应的唯一代号,slave通过该标识区分乱序后的数据传输是由哪个master发出的。
特别地,图4中的数据传输是按相应传输请求到达从设备的先后顺序进行的,如果从设备支持对一个master发起的多个传输请求的数据传输的乱序处理(读乱序和/或写乱序)即不按传输请求到达从设备的顺序进行数据传输,则也需要在地址通道、写通道和读通道上均增加用于传送每个传输请求的标识的一组信号线,在主设备在发出传输请求和写请求,从设备在发出读请求的同时均输出该传输请求的标识。
在多个master也可以分时复用同一个总线,且从设备又支持对同一master数据传输的乱序时,可以在地址通道、写通道和读通道上均增加用于传送master及其发起的该传输请求的标识的一组信号线,在主设备在发出传输请求和写请求,从设备在发出读请求的同时均输出该标识。
针对多个主设备同时和一个从设备(如存储设备,可以包括总线仲裁器、存储器控制器和存储器如SDRAM)进行数据传输的场合,本发明还提出了可以有效提高处理效率的方案。在工程应用中,多个主设备(如处理器、DMA和硬件加速器等功能模块)可能来自不同的生产厂商,支持的总线协议互不相同,如有的支持开放式IP核接口协议即OCP协议,有的支持AHB协议。这些总线协议接口信号多,功能复杂,不利于系统的低成本设计。上文中已提出了一种非常精炼但已具备数据传输核心功能的总线协议,因此只需要对使用其他协议的主设备做一些简单的改造,屏蔽掉一些不需使用的信号如AHB3.0协议所具有的用于数据出错处理的信号等,即可使得这些主设备可使用该总线协议与从设备间进行数据传输。
进一步地,本实施例的从设备还通过集中做容错性的检查、地址重叠的检查以及数据传输的仲裁,简化主设备侧的处理和提高处理效率。
对容错性的检查大致包括以下步骤:
第一步,从设备收到某一主设备发送的传输请求后,对该主设备通过地址通道传输的数据进行容错性的检查,如检查不通过,执行第二步,如检查通过,执行第三步;
例如,在收到写传输请求后,从设备可以检查主设备通过地址通道传输的首地址和大小,判断要写入的地址是否位于系统不允许写入的区域。
第二步,从设备进行数据出错处理,向主处理器发起中断,主处理器通过程序容错处理,控制出错的主设备更正错误的数据操作,结束;
第三步,从设备采样此次的传输请求信息,包括发送该传输请求的主设备的标识、数据首地址、笔数及读写状态,然后向该主设备反馈握手信号。
本实施例将数据出错在从设备集中处理,可以减少主设备处理的复杂度。
多个主设备向一个从设备发起传输请求时(其中一个主设备可以发起多个传输请求),或者一个主设备发起多次传输请求时,如果从设备只缓存(采样到的数据先缓存起来)有一条传输请求信息,则无需进行地址重叠检查和数据传输的仲裁,直接进行数据传输即可。如果缓存了多条传输请求信息,则可以按以下方式进行地址重叠检测和数据传输的仲裁。
步骤A,在从设备可以接受新的数据传输时,从设备对缓存的多条传输请求信息进行地址重叠检查,对存在地址重叠的传输请求加以标记;
上述从设备可以接受新的数据传输时可以是可以对从设备中的存储器进行一次新的访问时。
地址重叠检测是根据传输请求消息中的首地址和大小信息来判断的,即判断不同的传输请求是否会对同一地址进行读写操作。
步骤B,从设备对不存在地址重叠的传输请求进行数据传输的仲裁,从中选择出最高优先级的传输请求,先进行最高优先级传输请求的数据传输。
即,本实施例中,从设备将所有存在地址重叠的传输请求排除,只对缓存的其余传输请求进行仲裁,如果没有其他的传输请求,则将最先到达所述从设备的传输请求赋予最高优先级,进行该传输请求的数据传输。
对于多条传输请求进行仲裁时,有很多可选的方式:
一种方式是直接根据传输请求的先后顺序来处理,即不打乱顺序。
另一种方式中,设置了各个主设备的优先级,仲裁时选择出具有最高优先级的主设备发送的传输请求中最先到达的传输请求作为最高优先级的传输请求,该种方式支持读乱序和/或写乱序。不过,因为已经将存在地址重叠的传输请求排除,因此不会打乱这些存在地址重叠的传输请求的先后顺序,这样可以避免数据的一致性受到破坏,提高了可靠性。
本实施例中,以从设备为SDRAM为例,提出了一种相应的仲裁方式。
SDRAM将访问的地址分为块(Bank)地址,行(row)地址和列(column)地址。每次访问SDRAM时,需要先对其所在的块预充电(pre charge),再激活(active)其所在的行,然后才能访问出该地址所在存储单元。即每次访问SDRAM时,如果没有激活该bauk和该row,必须通过地址总线上发命令激活,然后再通过地址总线发出列地址,等待一定时间后,再在数据总线上传输数据。
因此如果访问地址所在的Bank已被充电且没有关闭,可以省去该步骤,节省下pre charge bank的时间。如果访问地址所在的Bank已被充电且该地址所在的row已被激活,可以省去该步骤,节省下active row的时间。由于SDRAM的访问时间很大一部份用于pre charge和active,所以如果能使连续的数据访问都尽量落在同一个Bank的同一个row上,那么将极大提高连续访问SDRAM的效率。
另一方面,如果SDRAM当前正在数据总线上传输数据,而且下一次传输是访问其他的Bank,那么可以地址总线可以提前发出pre charge bank和active row命令,提前激活下一次传输的bank和row,减少传输的命令延迟开销。而且,SDRAM的输入和输出一般复用同一套数据总线,即该总线是双向的。当做间隔读写操作时,SDRAM需要额外的时间开销来切换总线。所以,如果能使连续的数据访问都是读或者写,可以减少总线切换的开销。
结合SDRAM的器件特性,本实施例在从设备中记录某一个SDRAM的块是否充电完毕以及该块中已被激活的行,并记录前一次数据传输所访问的块地址和其读写状态。在仲裁时按以下方式进行:
首先查找有无和当前SDRAM已预充电的块、已激活的行相同地址的传输请求,如果有,将其中最先到达的传输请求赋予最高优先级,如果没有,继续下一步;
查找与前一访问的块地址不同的传输请求,如果有,将其中最先到达的传输请求赋予最高优先级,如果没有,继续下一步;
查找与前一访问的读写状态相同的传输请求,如果有,将其中最先到达的传输请求赋予最高优先级,如果没有,继续下一步;
根据发送传输请求的主设备的优先级,将优先级最高的主设备发起的最先到达的传输请求赋予最高优先级,允许发起该传输请求的主设备访问所述SDRAM。
以上仲裁方式能反映出有效利用SDRAM器件的特点,减少SDRAM器件预充电,行激活和双向总线切换的延迟开销,将较大地提高访问SDRAM存储器的效率和访问带宽。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (10)

1.一种主、从设备之间通过总线传输数据的方法,包括:
主设备和从设备之间通过总线建立地址通道、读通道和写通道,各个通道具有各自的握手信号;
在每一次数据传输中,主设备先在地址通道上向从设备发送传输请求,并输出要传输数据的地址、大小和读写状态信息,所述从设备采样到所述地址、大小和读写状态信息,然后通过地址通道向所述主设备反馈握手信号;之后,所述主设备和从设备利用读通道或写通道上的握手信号和数据信号完成此次读数据或写数据的传输;
在检测到所述从设备在地址通道反馈的握手信号后,所述主设备在地址通道上向所述从设备发出下一次的传输请求;其中:
当所述从设备在所述地址通道上发出对应于所述传输请求的握手信号后,所述从设备在读通道上发出代表已准备好读数据的读请求信号,并输出读数据,在收到主设备在读通道反馈的握手信号后再输出下一笔读数据;或当所述从设备在所述地址通道上发出对应于所述传输请求的握手信号后,所述主设备在写通道上向所述从设备发出代表已准备好写数据的写请求信号,并输出写数据,在收到从设备在写通道反馈的握手信号后再输出下一笔写数据。
2.如权利要求1所述的方法,其特征在于,主设备和从设备在地址通道上传输以下信号:
传输请求信号(avalid)是主设备在地址通道发出的握手信号,该信号有效时,表示主设备发起一次到从设备的数据传输请求;
地址信号(addr),表示本次数据传输的起始地址;
长度信号(len),表示每次突发要传输的数据大小,单位为笔数;
读写状态信号,表示本次数据传输是读传输还是写传输,读传输指主设备从从设备读出数据,写传输指主设备将数据写入从设备;
请求结束信号(aready)是从设备在地址通道反馈的握手信号,该信号有效时,代表从设备已完成对此次传输请求的地址、大小和读写状态的采样;
从设备没有反馈请求结束信号(aready)前,主设备输出的传输请求信号(avalid)、地址信号(addr)、长度信号(len)和读写状态信号必须保持。
3.如权利要求1或2所述的方法,其特征在于,主设备和从设备在读通道上传输以下信号:
读请求信号(rvalid)是从设备在读通道发出的握手信号,该信号有效时,代表从设备已准备好读数据,向主设备发出请求,等待主设备采样;
读数据信号(rdata)表示从设备输出的读数据;
读结束信号(rready)是主设备反馈的握手信号,该信号有效时,表示读数据已被主设备采样,下一时刻从设备可输出下一笔数据,主设备未反馈该握手信号前,从设备输出的读请求信号(rvalid)和读数据信号(rdata)必须保持。
4.如权利要求3所述的方法,其特征在于,主设备和从设备在写通道上传输以下信号:
写请求信号(wvalid)是主设备在写通道发出的握手信号,该信号有效时,代表主设备已经准备好写数据,向从设备发出写请求,等待从设备采样;
写数据信号(wdata)表示要主设备输出的写数据;
写结束信号(Wready)是从设备反馈的握手信号,该信号有效时,代表写数据已被从设备采样,下一时刻主设备可输出下一笔数据,从设备未反馈该握手信号前,主设备输出的写请求信号(wvalid)和写数据信号(wdata)必须保持。
5.如权利要求4所述的方法,其特征在于:
所述主设备有多个分时复用总线,从设备不支持同一主设备的数据传输的乱序时,所述地址通道、写通道和读通道上均还包括一组信号线,该组信号线用于在主设备发起传输请求和写请求以及从设备发起读请求时传送该次传输的主设备的标识;或者
所述主设备有多个分时复用总线,从设备支持同一主设备的数据传输的乱序时,所述地址通道、写通道和读通道上均还包括一组信号线,该组信号线用于在主设备发起传输请求和写请求以及从设备发起读请求时传送该次传输及主设备的标识;或者
所述从设备支持同一主设备的数据传输的乱序,所述主设备有一个或有多个但通过各自总线与所述从设备连接时,所述地址通道、写通道和读通道上均还包括一组信号线,该组信号线用于在主设备发起传输请求和写请求以及从设备发起读请求时传送该次传输的标识;或者
所述主设备有多个,其中每个主设备使用各自的总线与所述从设备进行数据传输时,所述从设备根据收到传输请求的线路确定是哪个主设备发来的传输请求并记录该主设备的标识。
6.如权利要求1或2或4或5所述的方法,其特征在于:
所述从设备收到所述主设备发送的传输请求后,先对该主设备通过地址通道传输的数据进行容错性的检查,如果检查通过,再采样此次的传输请求信息;如检查不通过,所述从设备向主处理器发起中断,主处理器通过程序容错处理,控制出错的所述主设备更正错误的数据操作。
7.如权利要求5所述的方法,其特征在于:
所述从设备支持相同主设备和/或不同主设备的数据传输的乱序,在缓存了多条传输请求信息时,所述从设备在进行数据传输的仲裁前对这些传输请求进行地址重叠检查,并标记存在地址重叠的传输请求,在进行数据传输时,存在地址重叠的同一组传输请求中的多个传输请求必须按照这些传输请求到达所述从设备的先后顺序来进行数据传输处理。
8.如权利要求7所述的方法,其特征在于:
所述从设备进行地址重叠检查,并标记存在地址重叠的传输请求后,在进行数据传输的仲裁时,将所有存在地址重叠的传输请求排除,只对缓存的其余传输请求进行仲裁,如果没有其他的传输请求,则将最先到达所述从设备的传输请求赋予最高优先级,进行该传输请求的数据传输。
9.如权利要求7或8所述的方法,其特征在于:
所述从设备是在可以接受新的数据传输时,进行所述地址重叠检查,并在检查后,进行所述数据传输的仲裁,允许写乱序和读乱序。
10.如权利要求5或7或8所述的方法,其特征在于:
所述从设备为包含SDRAM的存储设备,所述从设备记录该SDRAM的各块是否充电完毕以及该块中已被激活的行,并记录前一次数据传输所访问该SDRAM的块地址和其读写状态,在对多个缓存的传输请求进行仲裁时按以下方式处理:
首先查找有无和所述SDRAM当前已预充电的块、已激活的行相同地址的传输请求,如果有,将其中最先到达的传输请求赋予最高优先级,如果没有,继续下一步;
查找与前一访问的块地址不同的传输请求,如果有,将其中最先到达的传输请求赋予最高优先级,如果没有,继续下一步;
查找与前一访问的读写状态相同的传输请求,如果有,将其中最先到达的传输请求赋予最高优先级,如果没有,继续下一步;
根据发送传输请求的主设备的优先级,将优先级最高的主设备发起的最先到达所述从设备的传输请求赋予最高优先级;
所述从设备选择出最高优先级的传输请求后,进行该最高优先级传输请求的数据传输,允许发起该传输请求的主设备访问所述SDRAM。
CN2008102405558A 2008-12-23 2008-12-23 一种主、从设备之间通过总线传输数据的方法 Expired - Fee Related CN101477505B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008102405558A CN101477505B (zh) 2008-12-23 2008-12-23 一种主、从设备之间通过总线传输数据的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008102405558A CN101477505B (zh) 2008-12-23 2008-12-23 一种主、从设备之间通过总线传输数据的方法

Publications (2)

Publication Number Publication Date
CN101477505A CN101477505A (zh) 2009-07-08
CN101477505B true CN101477505B (zh) 2012-11-21

Family

ID=40838224

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008102405558A Expired - Fee Related CN101477505B (zh) 2008-12-23 2008-12-23 一种主、从设备之间通过总线传输数据的方法

Country Status (1)

Country Link
CN (1) CN101477505B (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106113A (zh) * 2013-02-25 2013-05-15 广东威创视讯科技股份有限公司 一种中断事件处理方法和处理设备
CN103729319A (zh) * 2013-12-04 2014-04-16 上海斐讯数据通信技术有限公司 基于串行总线的设备系统及数据传输方法
US9697141B2 (en) * 2014-10-17 2017-07-04 Sk Hynix Memory Solutions Inc. LBA blocking table for SSD controller
CN104836710B (zh) * 2015-02-10 2018-06-05 数据通信科学技术研究所 一种基于分布式系统一主多从通信的方法与装置
CN108920982B (zh) * 2015-10-30 2021-08-17 深圳国微技术有限公司 一种用于安全芯片的防篡改屏蔽层
CN105608027B (zh) * 2015-12-18 2018-10-19 华为技术有限公司 非易失存储设备和访问非易失存储设备的方法
CN106569974A (zh) * 2016-11-02 2017-04-19 深圳市博巨兴实业发展有限公司 一种软硬件接口协议
CN108228492B (zh) * 2016-12-21 2020-11-17 深圳市中兴微电子技术有限公司 一种多通道ddr交织控制方法及装置
CN108363670B (zh) * 2017-01-26 2020-07-14 华为技术有限公司 一种数据传输的方法、装置、设备和系统
CN107301143B (zh) * 2017-05-08 2020-09-04 浙江大学 一种基于双轨编码四相握手协议的异步仲裁器
US10372663B2 (en) * 2017-07-25 2019-08-06 Qualcomm Incorporated Short address mode for communicating waveform
CN108595350B (zh) * 2018-01-04 2022-04-05 深圳开阳电子股份有限公司 一种基于axi的数据传输方法和装置
CN108319430B (zh) * 2018-01-17 2021-03-23 杭州宏杉科技股份有限公司 处理io请求的方法及装置
CN108763140B (zh) * 2018-04-23 2021-02-12 深圳市文鼎创数据科技有限公司 一种双向通信的方法、系统及终端设备
CN109344093B (zh) * 2018-09-13 2022-03-04 苏州盛科通信股份有限公司 缓存结构、读写数据的方法和装置
CN109471824B (zh) * 2018-11-22 2021-02-05 青岛方寸微电子科技有限公司 基于axi总线的数据传输系统及方法
CN110737622B (zh) * 2019-10-15 2021-05-07 上海智汇电器有限公司 一种单线双向通讯充电方法
CN111752875A (zh) * 2020-06-22 2020-10-09 深圳鲲云信息科技有限公司 一种模块间通信方法及系统
CN111913902B (zh) * 2020-08-05 2021-11-12 青岛信芯微电子科技股份有限公司 应用于SoC芯片的控制总线时序的装置
CN111984562B (zh) * 2020-09-07 2022-05-10 苏州盛科通信股份有限公司 寄存器突发访问控制的方法、电子设备及存储介质
CN112256426A (zh) * 2020-10-21 2021-01-22 广东高云半导体科技股份有限公司 具有总线仲裁器的主从通信系统及通信方法
CN112948294B (zh) * 2021-03-19 2024-02-09 北京控制工程研究所 面向SOC的全域并行收发数据的双通道SpaceWire控制器及控制方法
CN114840458B (zh) * 2022-07-06 2022-09-20 北京象帝先计算技术有限公司 读写模块、片上系统和电子设备
CN115617718B (zh) * 2022-12-19 2023-03-21 芯动微电子科技(珠海)有限公司 一种基于AXI总线的读写保序方法及SoC系统
CN117435518B (zh) * 2023-12-21 2024-03-22 沐曦集成电路(上海)有限公司 一种用于主从读写数据的保护方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1947109A (zh) * 2004-04-28 2007-04-11 皇家飞利浦电子股份有限公司 具有异步/同步接口的电路
CN101135993A (zh) * 2007-09-20 2008-03-05 华为技术有限公司 一种嵌入式系统芯片及数据读写处理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1947109A (zh) * 2004-04-28 2007-04-11 皇家飞利浦电子股份有限公司 具有异步/同步接口的电路
CN101135993A (zh) * 2007-09-20 2008-03-05 华为技术有限公司 一种嵌入式系统芯片及数据读写处理方法

Also Published As

Publication number Publication date
CN101477505A (zh) 2009-07-08

Similar Documents

Publication Publication Date Title
CN101477505B (zh) 一种主、从设备之间通过总线传输数据的方法
US20070005922A1 (en) Fully buffered DIMM variable read latency
KR937000918A (ko) 고성능 버스 인터페이스를 사용하는 집적회로 입출력
US20050177664A1 (en) Bus system and method thereof
CN105224488B (zh) 一种pci总线控制器及其控制方法
JP4685800B2 (ja) スケーラブルなバス構造
US5925118A (en) Methods and architectures for overlapped read and write operations
CN105573951B (zh) 一种针对数据流传输的ahb总线接口系统
US20040205267A1 (en) Bridge for removing master-induced stalls on a data bus
US20130326090A1 (en) Ring topology status indication
CN101446931B (zh) 一种实现输入输出数据一致性的系统及方法
CN109656851B (zh) 一种时间确定的包括多路高速总线通道及共享接口的系统
CN104599227A (zh) 用于高速ccd数据存储的ddr3仲裁控制器及方法
US20020019911A1 (en) Distributed high-speed memory controller
US20060224804A1 (en) Direct memory access for advanced high speed bus
CN114416632A (zh) 一种基于多总线协议灵活转换的两级缓存互联结构
US20030191884A1 (en) Bus system and information processing system including bus system
US20070101032A1 (en) Bus arbitration circuit and bus arbitration method
US20090265483A1 (en) Direct memory access for advanced high speed bus
KR100438736B1 (ko) 어드레스 라인을 이용해 데이터 쓰기를 수행하는 메모리제어 장치
US6845418B2 (en) Bus system for master-slave device accesses, has multiple pseudo-delayer connected to controllers which delay and output access commands to slave devices for having longer latency periods
US8127108B2 (en) Apparatus, system and method for prefetching data in bus system
US20050144331A1 (en) On-chip serialized peripheral bus system and operating method thereof
JP4603054B2 (ja) スケーラブルバス構造
JPS6367042A (ja) コンピユ−タシステムのデ−タ転送方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: WUXI VIMICRO CO., LTD.

Free format text: FORMER OWNER: BEIJING ZHONGXING MICROELECTRONICS CO., LTD.

Effective date: 20110406

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100083 16/F, SHINING BUILDING, NO. 35, XUEYUAN ROAD, HAIDIAN DISTRICT, BEIJING TO: 214028 610, NATIONAL INTEGRATED CIRCUIT DESIGN PARK (CHUANGYUAN BUILDING), NO. 21-1, CHANGJIANG ROAD, WUXI NEW DISTRICT, JIANGSU PROVINCE

TA01 Transfer of patent application right

Effective date of registration: 20110406

Address after: 214028 national integrated circuit design (21-1), Changjiang Road, New District, Jiangsu, Wuxi, China, China (610)

Applicant after: Wuxi Vimicro Co., Ltd.

Address before: 100083 Haidian District, Xueyuan Road, No. 35, the world building, the second floor of the building on the ground floor, No. 16

Applicant before: Beijing Vimicro Corporation

C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address

Address after: 214135 Taihu International Science Park Sensor Network University Science Park 530 Building A1001, 18 Qingyuan Road, Wuxi, Jiangsu Province

Patentee after: WUXI ZHONGGAN MICROELECTRONIC CO., LTD.

Address before: 214028 National Integrated Circuit Design Park (Chuangyuan Building) 610, 21-1 Changjiang Road, New District, Wuxi City, Jiangsu Province

Patentee before: Wuxi Vimicro Co., Ltd.

CP03 Change of name, title or address
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121121

Termination date: 20191223