CN101324869B - 一种基于axi总线的多路复用器 - Google Patents

一种基于axi总线的多路复用器 Download PDF

Info

Publication number
CN101324869B
CN101324869B CN200810116126XA CN200810116126A CN101324869B CN 101324869 B CN101324869 B CN 101324869B CN 200810116126X A CN200810116126X A CN 200810116126XA CN 200810116126 A CN200810116126 A CN 200810116126A CN 101324869 B CN101324869 B CN 101324869B
Authority
CN
China
Prior art keywords
module
lite
request
axi
indication information
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
CN200810116126XA
Other languages
English (en)
Other versions
CN101324869A (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 Vimicro Corp
Original Assignee
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 Vimicro Corp filed Critical Vimicro Corp
Priority to CN200810116126XA priority Critical patent/CN101324869B/zh
Publication of CN101324869A publication Critical patent/CN101324869A/zh
Application granted granted Critical
Publication of CN101324869B publication Critical patent/CN101324869B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及存储器访问控制技术,尤其涉及基于AXI总线采用多路复用器访问存储器的技术。一种基于AXI总线的多路复用器,包括:多个接口模块,还包括:请求指示信息确定模块,用于在接收到接口模块输出的请求允许信号时,确定请求指示信息并输出;请求指示信息缓存模块,用于以先入先出的方式缓存请求指示信息;请求指示信息处理模块,用于依次获得缓存的请求指示信息,确定对应的AXI_lite主模块发出请求命令,并处理该请求命令。由于按照先入先出顺序读取请求指示信息,处理各AXI_lite主模块的请求命令,从而保证了请求命令处理时序;且请求指示信息占用存储资源很少。因此该多路复用器既节约资源又保证了系统的可靠性。

Description

一种基于AXI总线的多路复用器
技术领域
本发明涉及存储器访问控制技术,尤其涉及基于AXI总线采用多路复用器访问存储器的技术。
背景技术
在许多系统中,尤其在多媒体领域的系统中,如图像处理、三维游戏、运动估计等都需要大量的存储器,并对存储器进行频繁访问。随着所需存储器的增多,为了实现对大容量存储器的访问,越来越需要片外SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)/DDR(Double-data-rate synchronous Dynamic Random access memory,双数据率同步动态随机存储器)存储器的支持。为了方便对SDRAM/DDR存储器进行访问,提出了AXI总线,以适应SDRAM/DDR的特性,并使得基于SDRAM/DDR的总线可以达到较高带宽,即较高的访问速度。由于AXI总线较为复杂,现多采用一种简化版的AXI(Advanced eXtensible Interface,先进可扩展接口)总线,即AXI_lite总线。
通过AXI_lite总线实现对存储器访问的示意图如图1所示,其中包括:AXI_lite主模块101、AXI_lite从模块102、存储器103、以及AXI_lite总线104。
AXI_lite主模块101是对存储器进行访问的器件或模块,即向存储器写数据、或从存储器读数据的器件或模块,通常可以是CPU(Center Process Unit,中央处理单元)、MCU(Micro Controller Unit,微处理单元)、DMAC(DirectMemory Access Controller,直接内存存取控制器)等。
AXI_lite从模块102通过AXI_lite总线104与AXI_lite主模块101相连,AXI_lite从模块102通过AXI_lite总线104获得AXI_lite主模块101对存储器103的各种访问请求(如向存储器103的XXXX地址写入数据YYYY),并根据该访问请求对存储器103进行控制(如将数据YYYY写入存储器103的XXXX地址),并通过AXI_lite总线104向AXI_lite主模块101返回对存储器103的访问结果(如操作是否成功,或者从存储器读取的数据)。AXI_lite从模块102即是对存储器访问进行控制的模块。
存储器103可以是SDRAM或者DDR存储器。
AXI_lite总线的信号定义及描述如表1所示:
表1
Figure G200810116126XD00021
上表“发起方”中的“主”或“主模块”指的是AXI_lite主模块;“发起方”中的“从”指的是AXI_lite从模块。
通常为了节约空间和成本,多个AXI_lite主模块可以共用一个大容量的存储器。这时,可以在AXI_lite主模块与AXI_lite从模块之间增加一个AXI_lite多路复用器来协调多个AXI_lite主模块对存储器的访问(如图2所示)。在总线信号中定义的AXI_lite主模块编号rid或wid信号则是用以区分不同AXI_lite主模块的。对于不同的AXI_lite主模块,rid、wid信号值不一样。
AXI_lite主模块向AXI_lite从模块发送读、写请求的波形如图3所示:
当AXI_lite主模块需要产生一个读写请求,就将有效读写请求avalid信号置高(即低电平变为高电平);当AXI_lite从模块已经处理好该读写请求地址了,则使请求准备好aready信号有效。如果AXI_lite主模块没有新的请求,AXI_lite主模块将avalid信号拉低(即高电平变为低电平)。如果为写操作,那么在AXI_lite从模块使aready有效后,AXI_lite主模块将要写入存储器的数据放入写入数据wdata总线上,并且每收到一个写请求准备好wready有效(为高)信号,就给出下一个写数据,以及对应该数据的wid,写数据字节有效位wstrb信号;如果为读操作,那么当avalid有效时,读数据rdata总线上为有效的读数据,同时rid上为该数据对应的AXI_lite主模块源。此外,对应不同rid的几个先后的读数据请求之间不需要确保顺序,但是rid相同的读数据要按照请求和地址顺序返回。各个写数据必须按照请求和地址顺序依次发送。读写数据可以交错返回。
现有技术中的一种多路复用器的内部结构框图如图4a所示,在多路复用器中包括:多个接口模块402、控制模块403。
多路复用器通过多个接口模块402与多个AXI_lite主模块401相连,其控制模块403用以接收多个AXI_lite主模块401通过接口模块402发送的请求命令,并通过一个AXI_lite从模块404根据这些请求命令访问存储器,并获得存储器返回数据,通过接口模块402将返回的数据返回给各AXI_lite主模块401。这样,通过该多路复用器就实现了多个AXI_lite主模块401通过一个AXI_lite从模块404访问一个存储器。由于控制模块403要处理多个AXI_lite主模块401的请求命令,为了区分各个AXI_lite主模块,各AXI_lite主模块401都有编号,该编号信息通过AXI_lite总线的aid、rid信号传送到控制模块403。
该多路复用器具体的协调处理各AXI_lite主模块401的请求命令的过程为:
当接口模块402接收到AXI_lite主模块401通过AXI_lite总线发送的请求命令时,向控制模块403发送请求允许信号;
控制模块403在接收到请求允许信号时,确认发送该请求允许信号的接口模块402所对应的AXI_lite主模块401有访问请求,则通过AXI_lite总线从该接口模块402获得对应AXI_lite主模块401的请求命令,并处理该请求命令:
控制模块403根据该请求命令通过AXI_lite从模块404访问存储器,获得返回数据,将返回数据通过该接口模块402返回给对应AXI_lite主模块402。
如图4a所示的多路复用器虽然解决了多个AXI_lite主模块访问一个存储器的问题,但是在某些时候该多路复用器无法保证对请求命令的顺序处理,从而有可能导致数据有效性的系统性错误,使得系统可靠性不高:
比如AXI_lite主模块C发送了一个向存储器写入50个数据的请求命令,由于该请求命令需要操作大量数据,因此控制模块403处理该请求命令的时间会较长,那么在控制模块403处理该请求命令的期间,可能其它AXI_lite主模块401也发送了请求命令:比如AXI_lite主模块B发送了一个请求命令,之后AXI_lite主模块A也发送了一个请求命令。由于控制模块403正在处理AXI_lite主模块C的请求命令,因此AXI_lite主模块B与AXI_lite主模块A的请求命令都保持(Hold)在AXI_lite总线上。当控制模块403处理完毕AXI_lite主模块C的请求命令后,由于控制模块403无法区分是AXI_lite主模块A先发出请求命令,还是AXI_lite主模块B先发出请求命令,因此有可能先处理AXI_lite主模块A的请求命令,也有可能先处理AXI_lite主模块B的请求命令。假如,控制模块403先处理了AXI_lite主模块A的请求命令,那么将导致先发送的请求命令反而在后处理。这种情况对于需要保证严格处理顺序的系统,会导致数据有效性的系统性错误,使得系统可靠性不高。而且这种系统错误往往在调试过程中很难被发现。
现有技术中的另一种多路复用器的内部结构框图如图4b所示,包括:多个接口模块412、控制模块413、以及命令内容缓存模块415。
与图4a所示的多路复用器不同的是,图4b的多路复用器的控制模块413在接收到接口模块的请求允许信号后,将通过该接口模块获得的请求命令的命令内容全部保存到命令内容缓存模块415中,并通过该接口模块向对应的AXI_lite主模块返回请求准备好信号(aready),这样AXI_lite主模块释放AXI_lite总线,也就是说请求命令的命令内容不保持在AXI_lite总线上。
而命令内容缓存模块415是以先入先出的方式缓存请求命令的命令内容,也就是说,先发送的请求命令,其命令内容将先被保存到命令内容缓存模块415中,并先被从命令内容缓存模块415中读取出来,这样就保证了请求命令的处理顺序。当控制模块413处理完毕先前的请求命令后,可以从命令内容缓存模块415中获得下个请求命令的命令内容,根据下一个请求命令的命令内容来处理请求命令:将AXI_lite主模块数据线输出的数据通过AXI_lite从模块写入到存储器、或者通过AXI_lite从模块从存储器读取数据到AXI_lite主模块。
虽然图4b的多路复用器可以保证请求命令的处理顺序,但是命令内容缓存模块415要占用大量的资源。对于一个请求命令,需要保存到命令内容缓存模块415中的命令内容包括:地址信息,读、写命令信息,数据长度信息,AXI_lite主模块编号信息等,共计占用资源约40比特(bit)。而一个命令内容缓存模块415需要保存多个请求命令的命令内容,比如通常是8个,则命令内容缓存模块415占用资源为320比特(bit)。这对于资源紧张的逻辑器件来说,命令内容缓存模块占用了较多的资源。
因此,现有技术的多路复用器无法在占用较少资源的前提下,保证对请求命令的顺序处理、避免数据有效性的系统性错误导致的系统可靠性不高。
发明内容
本发明实施例提供了一种基于AXI总线的多路复用器,既节约资源又保证了系统的可靠性。
一种基于AXI总线的多路复用器,包括:多个与各简化版的先进可扩展接口AXI_lite主模块分别相连的接口模块,还包括:
请求指示信息确定模块,用于在接收到所述接口模块输出的请求允许信号时,根据接收的请求允许信号确定请求指示信息并输出;所述请求指示信息用以指示所述请求允许信号对应的AXI_lite主模块发出请求命令;
请求指示信息缓存模块,用于以先入先出的方式缓存所述请求指示信息确定模块输出的请求指示信息;
请求指示信息处理模块,用于依次获得所述请求指示信息缓存模块中缓存的请求指示信息;通过接口模块,获得该请求指示信息对应的AXI_lite主模块连接的AXI_lite总线上的请求命令的命令内容,并根据获得的命令内容处理该AXI_lite主模块的请求命令,所述请求命令的命令内容保持在AXI_lite主模块连接的AXI_lite总线上。
较佳的,所述请求指示信息处理模块具体用于依次获得所述请求指示信息缓存模块中缓存的请求指示信息;根据获得的指示请求信息确定对应的AXI_lite主模块发出请求命令,并通过所述接口模块获得该AXI_lite主模块的请求命令内容,根据获得的请求命令内容处理该AXI_lite主模块的请求命令。
较佳的,所述多路复用器,还包括:
地址缓冲模块,用于缓存当前处理以及下一个将要处理的请求命令的地址信息;
写命令信息存储模块,用于缓存当前处理以及下一个将要处理的请求命令的数据长度信息、对应AXI_lite主模块的编号信息;
以及请求指示信息处理模块具体用于依次获得所述请求指示信息缓存模块中缓存的请求指示信息;根据获得的指示请求信息确定对应的AXI_lite主模块发出请求命令,并从所述地址缓冲模块获得该请求命令的地址信息、从所述写命令信息存储模块获得该请求命令的数据长度信息、该AXI_lite主模块的编号信息,处理该请求命令;并在处理该请求命令的同时,将下一个要处理的请求命令的地址信息缓存到所述地址缓冲模块中,将下一个要处理的请求命令的数据长度信息、对应AXI_lite主模块的编号信息缓存到所述写命令信息存储模块中。
进一步,所述多路复用器,还包括:
数据缓冲模块,用于缓存当前处理以及下一个将要处理的写数据信息;以及
所述请求指示信息处理模块具体还用于在处理一个请求指示信息中某个AXI_lite主模块的请求命令时,从所述数据缓冲模块获得即将处理的写数据信息,并将下一个写数据信息缓存到所述数据缓冲模块中,并通过接口模块向对应AXI_lite主模块返回写数据准备好信号。
所述请求指示信息处理模块具体还用于在将下一个要处理的请求命令的地址信息缓存到所述地址缓冲模块后,通过所述接口模块向对应的AXI_lite主模块发送请求准备好信号。
所述请求指示信息包含多个与所述AXI_lite主模块个数相应的比特信息,每个比特信息用于分别指示各AXI_lite主模块是否发出请求命令:
若AXI_lite主模块发出请求命令,则所述请求指示信息中对应的比特信息为1,否则为0;或者
若AXI_lite主模块发出请求命令,则所述请求指示信息中对应的比特信息为0,否则为1。
所述多路复用器,还包括:
优先级确定模块,用于确定各AXI_lite主模块的优先级;以及
所述请求指示信息处理模块还用于在处理包含多个AXI_lite主模块发出请求命令信息的请求指示信息时,根据所述优先级确定模块确定的各AXI_lite主模块的优先级依次处理该请求指示信息对应的多个AXI_lite主模块的请求命令。
所述优先级确定模块具体用于在向所述请求指示信息处理模块输出一个当前有请求命令的优先级最高的AXI_lite主模块的编号后,将该AXI_lite主模块优先级降为最低,将其它比该AXI_lite主模块原优先级低的AXI_lite主模块优先级分别增加1。
本发明实施例的多路复用器由于采用请求指示信息缓存模块按照先后顺序缓存用以指示各AXI_lite主模块发出请求命令的请求指示信息,并从请求指示信息缓存模块中依先后顺序获得缓存的请求指示信息,根据请求信息指示的对应AXI_lite主模块发出请求命令,处理该AXI_lite主模块的请求命令。从而达到对于先发送请求命令的AXI_lite主模块的先处理其请求命令的目的,保证了请求命令处理的时序,也就保证了系统的可靠性;并且请求指示信息由于只保存了用于指示AXI_lite主模块发出了请求命令的信息,而不必将请求命令的命令内容都保存,因此占用存储资源较少。因此,该多路复用器既节约资源又保证了系统的可靠性。
进一步,由于在多路复用器中采用了两级或者两级以上写地址缓冲、以及写命令缓冲的技术,从而可以保证及时传送地址到与AXI_lite从模块相连的总线上,从而提高了对存储器访问的效率。
进一步,由于在多路复用器中采用了两级或者两级以上的数据缓冲模块,从而可以保证传递到AXI_lite从模块相连的总线上的数据建立时间只有几级门延时,从而在物理实现中可以达到较高的总线频率,即较高的访问速度。
进一步,由于在多路复用器中的优先级确定模块可以对多个AXI_lite主模块在同一时刻发出的请求命令做出优先级仲裁,从而确定处理优先级最高的AXI_lite主模块的请求命令,防止了请求命令的处理冲突,合理的安排了请求命令的处理顺序。
附图说明
图1为现有技术的通过AXI_lite总线进行存储器访问的示意图;
图2为现有技术的多AXI_lite主模块通过多路复用器进行存储器访问的示意图;
图3为现有技术的AXI_lite总线波形示意图;
图4a为现有技术的多路复用器内部结构框图;
图4b为现有技术的另一种多路复用器内部结构框图;
图5为本发明实施例一的多路复用器内部结构框图;
图6为本发明实施例一的保存到请求指示信息存储子单元中的一个请求指示信息示意图;
图7为本发明实施例一的请求指示信息缓存模块保存请求指示信息的示意图;
图8为本发明实施例二的多路复用器内部结构框图。
具体实施方式
本发明提供的基于AXI_lite总线的多路复用器采用请求指示信息缓存模块按照先后顺序缓存用以指示各AXI_lite主模块发出请求命令的请求指示信息,并从请求指示信息缓存模块中依先后顺序获得缓存的请求指示信息,根据请求信息指示的对应AXI_lite主模块发出请求命令,处理该AXI_lite主模块的请求命令。这样就可以依各AXI_lite主模块请求命令的先后顺序来依次处理各个请求命令,从而严格保证信号处理时序,也就保证了系统的可靠性;由于请求指示信息只保存了用于指示AXI_lite主模块发出了请求命令的信息,而不必将请求命令的命令内容都保存,因此占用存储资源较少。因此,多路复用器既节约资源又保证了系统的可靠性。
本发明提供了两个具体的实施例:实施例一的技术方案采用请求指示信息缓存模块以先入先出的方式缓存各AXI_lite主模块的请求指示信息,从而使得控制模块可以按照先后顺序依次处理AXI_lite主模块的请求命令;实施例二的技术方案为在实施例一的基础上增加地址、数据缓冲技术,进而更提高对存储器的访问效率。
实施例一
在如图5所示的多路复用器中,包括:请求指示信息确定模块501、接口模块502、请求指示信息缓存模块503、请求指示信息处理模块505。
请求指示信息确定模块501在接收到接口模块502发送的请求允许信号时,根据接口模块502发送的请求允许信号确定一个请求指示信息,该请求指示信息用以指示接收的请求允许信号对应的AXI_lite主模块发出请求命令;请求指示信息确定模块501将确定的请求指示信息输出保存到请求指示信息缓存模块503中。
例如,请求指示信息确定模块501接收到接口模块A发送的请求允许信号,则确定与接口模块A相连的AXI_lite主模块A发出请求命令,并将指示该AXI_lite主模块A发出请求命令的请求指示信息输出保存到请求指示信息缓存模块503中。
请求指示信息确定模块501还可能同时接收到多个接口模块发送的请求允许信号,比如同时接收到了接口模块A、接口模块B、接口模块C的请求允许信号,则确定与接口模块A相连的AXI_lite主模块A发出请求命令、与接口模块B相连的AXI_lite主模块B发出请求命令、与接口模块C相连的AXI_lite主模块C发出请求命令,并根据接口模块A、B、C的请求允许信号确定一个请求指示信息,即指示了AXI_lite主模块A、B、C同时发出请求命令的请求指示信息;请求指示信息确定模块501将确定的请求指示信息保存到请求指示信息缓存模块503中。
请求指示信息确定模块501中包括一个请求指示信息存储单元用以缓存确定的请求指示信息;
请求指示信息存储单元可以有多种存储请求指示信息的方法,比如以一个数组来保存各AXI_lite主模块发出请求命令的信息,数组元素取值等于发出请求命令的AXI_lite主模块的编号。由于,编号通常占用的bit位较少,编号占用的bit位视多路复用器外接AXI_lite主模块的个数而定,比如外接8个AXI_lite主模块的多路复用器编号只需占用3bit,则一个数组元素占用3bit位;假设按照最多有4个AXI_lite主模块同时发出请求命令来设计,则一个请求指示信息仅占用3×4=12bit的空间。
但是更为有效而节约资源的方法是:请求指示信息存储单元缓存的请求指示信息包含多个与所述AXI_lite主模块个数相应的比特信息,每个比特信息用于分别指示各AXI_lite主模块是否发出请求命令。例如,某个AXI_lite主模块发出请求命令,则请求指示信息中对应的比特信息为1,而没有发出请求命令的AXI_lite主模块对应的比特信息为0;或者,若某个AXI_lite主模块发出请求命令,则将对应的比特信息为0,而没有发出请求命令的AXI_lite主模块对应的比特信息为1。这样,存储一个请求指示信息,只需占用与外接AXI_lite主模块个数相应的bit个数。例如,该多路复用器为外接8个AXI_lite主模块的多路复用器,则一个请求指示信息只需占用8个bit,即一个字节。一种具体的请求指示信息存储单元可参见图6。
请求指示信息缓存模块503为先入先出的缓存FIFO模块,以先入先出的方式缓存所述控制模块输出的请求指示信息。具体的,先被存入的请求指示信息将被先发送到请求指示信息处理模块505进行处理。
同样,请求指示信息缓存模块503也可以采用多个与上述请求指示信息存储单元相同结构的缓存单元来缓存请求指示信息。这样,请求指示信息缓存模块503所占用的资源也非常的少:假如请求指示信息缓存模块503共可以缓存8个请求指示信息,每个请求指示信息占用8bit,则请求指示信息缓存模块503占用资源共64bit,其远小于现有技术中命令内容缓存模块所占用的资源(320bit)。
图7示出了一种具有8路接口模块502的多路复用器的请求指示信息缓存模块的示意图:每当有接口模块502发送请求允许信号时,请求指示信息确定模块501即向请求指示信息缓存模块503中保存一个确定的请求指示信息,一个请求指示信息以一个字节byte表示,byte中的每个bit位用以指示一个请求指示信息中各路接口模块502外接的AXI_lite主模块是否发出请求命令。
请求指示信息处理模块505用于依次获得请求指示信息缓存模块503中缓存的请求指示信息;根据获得的指示请求信息确定对应的AXI_lite主模块发出请求命令,并处理该AXI_lite主模块的请求命令。
处理一个请求指示信息的具体过程为:请求指示信息处理模块505根据从请求指示信息缓存模块503获得的请求指示信息,确定AXI_lite主模块发出请求命令,由于此时请求命令的命令内容都保持在AXI_lite主模块连接的AXI_lite总线上,请求指示信息处理模块505通过接口模块502获得对应AXI_lite主模块AXI_lite总线上的请求命令的命令内容,并根据该AXI_lite主模块的请求命令内容处理该请求命令。例如,请求指示信息处理模块505获得的请求指示信息指示“AXI_lite主模块A发出了请求命令”,则请求指示信息处理模块505通过接口模块502获得AXI_lite主模块A输出到AXI_lite总线上的请求命令的命令内容,根据该命令内容处理AXI_lite主模块A的请求命令。
如果请求指示信息中指示了多个AXI_lite主模块发出请求命令,例如指示了AXI_lite主模块A、B、C发出请求命令,则请求指示信息处理模块505可以根据该请求指示信息依次处理AXI_lite主模块A、B、C发出的请求命令;也就是请求指示信息处理模块505通过接口模块依次获得、处理AXI_lite主模块A、B、C发出的请求命令。
请求指示信息处理模块505在处理完毕一个请求指示信息后,则处理从请求指示信息缓存模块503获得的下一个请求指示信息。
进一步,该多路复用器还可以包括:优先级确定模块504。
优先级确定模块504,用于确定各AXI_lite主模块的优先级;一个较佳的优先级确定方法是循环优先级算法:向请求指示信息处理模块505返回一个当前有请求命令的优先级最高的AXI_lite主模块的编号,之后将该AXI_lite主模块优先级降为最低,其他比该AXI_lite主模块原优先级(即该AXI_lite主模块降为最低优先级之前的优先级)低的所有AXI_lite主模块(包括有请求命令的AXI_lite主模块、以及无请求命令的AXI_lite主模块)优先级分别增加1,使得各路AXI_lite主模块的请求能平等的获得请求权力。当然,本领域技术人员可以根据实际情况采用其它优先级算法。
请求指示信息处理模块505还用于在处理包含多个AXI_lite主模块发出请求命令信息的请求指示信息时,根据优先级确定模块504确定的各AXI_lite主模块的优先级依次处理该请求指示信息对应的多个AXI_lite主模块的请求命令。
上述的请求指示信息确定模块501和请求指示信息处理模块505可以分别设置,也可以同处于一个控制模块中。
本发明实施例的多路复用器由于控制模块根据接收到接口模块发送的请求允许信号确定的AXI_lite主模块的请求指示信息保存到请求指示信息缓存模块中,并按照存入的先后顺序从请求指示信息缓存模块中依次读取、处理各AXI_lite主模块的请求指示信息,从而达到对于先发送请求命令的AXI_lite主模块的先处理其请求命令的目的,保证了请求命令处理的时序,也就保证了系统的可靠性;并且请求指示信息由于只保存了用于指示AXI_lite主模块发出了请求命令的信息,而不必将请求命令的命令内容都保存,因此占用存储资源较少。因此,该多路复用器既节约资源又保证了系统的可靠性。
实施例二
如图8所示的多路复用器中包括:请求指示信息确定模块801、接口模块802、请求指示信息缓存模块803、请求指示信息处理模块808、地址缓冲模块805、写命令信息存储模块807。
其中接口模块802、请求指示信息缓存模块803的功能与实施例一中的接口模块502、请求指示信息缓存模块503相同,此处不再赘述。
请求指示信息确定模块801在接收到接口模块802发送的请求允许信号时,根据接口模块802发送的请求允许信号确定一个请求指示信息,该请求指示信息包含了接收的请求允许信号对应的AXI_lite主模块发出请求命令的信息;请求指示信息确定模块801将确定的请求指示信息输出保存到请求指示信息缓存模块803中。请求指示信息确定模块801的具体结构和功能可以与实施例一的请求指示信息确定模块501相同。
地址缓冲模块805为至少两级的地址缓冲模块,也就是具有至少两个地址缓存单元;一个地址缓存单元可以存储一个请求命令的地址信息。地址缓冲模块805用于缓存当前处理以及下一个将要处理的请求命令的地址信息。
写命令信息存储模块807包括至少两个写命令信息缓存单元;一个写命令信息缓存单元可以存储一个请求命令的数据长度信息、以及对应AXI_lite主模块的编号信息。写命令信息存储模块807用于缓存当前处理以及下一个将要处理的请求命令的数据长度信息、对应AXI_lite主模块的编号信息。
请求指示信息处理模块808用于依次获得请求指示信息缓存模块803中缓存的请求指示信息,并处理获得的请求指示信息:请求指示信息处理模块808根据请求指示信息确定对应的AXI_lite主模块发出请求命令,并处理该请求命令。
请求指示信息处理模块808根据请求指示信息处理请求命令的具体过程为:
请求指示信息处理模块808根据从所述请求指示信息缓存模块获得的请求指示信息,从地址缓冲模块805获得该请求指示信息对应AXI_lite主模块的请求命令的地址信息,从写命令信息存储模块807获得该请求指示信息对应AXI_lite主模块的请求命令的数据长度信息、对应AXI_lite主模块的编号信息,处理该AXI_lite主模块的请求命令;并在处理该AXI_lite主模块的请求命令时,将下一个要处理的请求命令的地址信息缓存到地址缓冲模块805中、数据长度信息、对应AXI_lite主模块的编号信息缓存到写命令信息存储模块807中。而对于其它已经发出请求命令的AXI_lite主模块,在其地址信息、数据长度信息、编号信息没有缓存到地址缓冲模块805与写命令信息存储模块807之前,AXI_lite主模块的命令内容依然保持(Hold)在AXI_lite主模块连接的AXI_lite总线上。
也就是说,请求指示信息处理模块808从地址缓冲模块805中的一个地址缓存单元A获得当前处理的请求命令的地址信息,并将下一个要处理的AXI_lite主模块的请求命令的地址信息通过接口模块缓存到地址缓冲模块805中的另一个地址缓存单元B;请求指示信息处理模块808在处理下一个请求命令时,则从地址缓存单元B中获得地址信息,将下下个请求命令的地址缓存到地址缓存单元A中;此种访问方式也称为乒乓式访问,即请求指示信息处理模块808交替读取地址缓存单元A、地址缓存单元B缓存的内容,并在读取其中一个单元的地址信息时,向另一个单元缓存下一个要读取的请求命令的地址信息。
请求指示信息处理模块808从写命令信息存储模块807获得当前处理的请求命令的数据长度信息、对应AXI_lite主模块的编号信息,并将下一个要处理的AXI_lite主模块的请求命令的数据长度信息、对应AXI_lite主模块的编号信息通过接口模块缓存到写命令信息存储模块807中。
这样,在请求指示信息处理模块808处理下一个请求命令时,可直接从地址缓冲模块、写命令信息存储模块中获得请求命令的命令内容,节省了切换、等待时间,提高了访问存储器的效率。
进一步,本实施例的多路复用器还可以包括:数据缓冲模块806。
数据缓冲模块806为至少两级的数据缓冲模块,也就是具有至少两个数据缓存单元;一个数据缓存单元可以存储一个写数据信息。数据缓冲模块806用于缓存当前处理以及下一个将要处理的写数据信息。
请求指示信息处理模块808还用于在处理一个请求指示信息中某个AXI_lite主模块的请求命令时,从数据缓冲模块806获得即将处理的写数据信息,并将下一个写数据信息缓存到数据缓冲模块806中。具体的,请求指示信息处理模块808从数据缓冲模块806获得当前处理的请求命令的写数据信息,并将下一个要处理的AXI_lite主模块的请求命令的写数据信息通过接口模块缓存到数据缓冲模块806中,并通过接口模块给对应AXI_lite主模块返回写数据准备好信号wready;请求指示信息处理模块808访问数据缓冲模块806的方法可以采用与访问地址缓冲模块805同样的乒乓式访问方法。
并且,当请求指示信息处理模块808在将请求命令的地址信息缓存到地址缓冲模块805时,还可以通过接口模块向该请求命令的AXI_lite主模块返回请求准备好信号;这样,该AXI_lite主模块可以释放AXI_lite总线,如果有另一个访问请求,则可以将另一个请求命令发送到多路复用器,从而进一步提高存储器访问效率。
此处需要指出的是,虽然本实施例增加了地址缓冲模块805、写命令信息存储模块807和数据缓冲模块806,但是由于地址缓冲模块805仅包含两个用以存储地址信息的地址缓存单元,即占用64bit,写命令信息存储模块807仅占用两个用以存储数据长度信息、对应AXI_lite主模块的编号信息的写命令信息缓存单元,即占用14bit;数据缓冲模块806仅包含两个用以存储数据信息的数据缓存单元,即占用64bit;一共占用142bit、再加上请求指示信息缓存模块803占用的64bit(8个外接AXI_lite主模块),其占用资源206bit还是较现有技术少。
在本实施例的多路复用器还包括数据缓冲模块806时,请求指示信息处理模块808还用于在处理一个请求指示信息中某个AXI_lite主模块的请求命令时,从数据缓冲模块806获得即将处理的写数据信息,并将下一个写数据信息缓存到数据缓冲模块806中,同时通过接口模块给AXI_lite主模块返回写数据准备好信号。
进一步多路复用器还可包括:优先级确定模块804;该优先级确定模块804与实施例一的优先级确定模块504相同,此处不再赘述。
请求指示信息处理模块808还用于在处理包含多个AXI_lite主模块发出请求命令信息的请求指示信息时,根据优先级确定模块504确定的各AXI_lite主模块的优先级依次处理该请求指示信息对应的多个AXI_lite主模块的请求命令。
上述的请求指示信息确定模块801和请求指示信息处理模块808可以分别设置,也可以设置于同一个控制模块中。
本发明实施例的多路复用器由于控制模块根据接收到接口模块发送的请求允许信号确定的AXI_lite主模块的请求指示信息保存到请求指示信息缓存模块中,并按照存入的先后顺序从请求指示信息缓存模块中依次读取、处理各AXI_lite主模块的请求指示信息,从而达到对于先发送请求命令的AXI_lite主模块的先处理其请求命令的目的,保证了请求命令处理的时序,也就保证了系统的可靠性;并且请求指示信息由于只保存了用于指示AXI_lite主模块发出了请求命令的信息,而不必将请求命令的命令内容都保存,因此占用存储资源较少。因此,该多路复用器既节约资源又保证了系统的可靠性。
由于在多路复用器中采用了两级或者两级以上写地址缓冲、以及写命令缓冲的技术,从而可以保证及时传送地址和数据到与AXI_lite从模块相连的总线上,从而提高了对存储器访问的效率。
由于在多路复用器中采用了两级或者两级以上数据缓冲模块,从而可以保证传递与到AXI_lite从模块相连的AXI_lite总线上的数据建立时间只有几级门延时,从而在物理实现中可以达到较高的总线频率,即达到较高的访问速度。
由于在多路复用器中采用了两级或者两级以上读地址缓冲技术从而可以保证及时从AXI_lite从模块读取到数据,从而提高对存储器访问的效率。
由于在多路复用器中的优先级确定模块可以对多个AXI_lite主模块在同一时刻发出的请求命令做出优先级仲裁,从而确定处理优先级最高的AXI_lite主模块的请求命令,防止了请求命令的处理冲突,合理的安排了请求命令的处理顺序。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如:ROM/RAM、磁碟、光盘等;或者可以通过直接采用硬件实现的方式来达到该设计意图,该硬件可以用ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field-Programmable Gate Array,现场可编程门阵列)或其他类似手段来实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种基于AXI总线的多路复用器,包括:多个与各简化版的先进可扩展接口AXI_lite主模块分别相连的接口模块,其特征在于,还包括:
请求指示信息确定模块,用于在接收到所述接口模块输出的请求允许信号时,根据接收的请求允许信号确定请求指示信息并输出;所述请求指示信息用以指示所述请求允许信号对应的AXI_lite主模块发出请求命令;
请求指示信息缓存模块,用于以先入先出的方式缓存所述请求指示信息确定模块输出的请求指示信息;
请求指示信息处理模块,用于依次获得所述请求指示信息缓存模块中缓存的请求指示信息;通过接口模块,获得该请求指示信息对应的AXI_lite主模块连接的AXI_lite总线上的请求命令的命令内容,并根据获得的命令内容处理该AXI_lite主模块的请求命令,所述请求命令的命令内容保持在AXI_lite主模块连接的AXI_lite总线上。
2.如权利要求1所述的多路复用器,其特征在于,
所述请求指示信息处理模块具体用于依次获得所述请求指示信息缓存模块中缓存的请求指示信息;根据获得的指示请求信息确定对应的AXI_lite主模块发出请求命令,并通过所述接口模块获得该AXI_lite主模块的请求命令内容,根据获得的请求命令内容处理该AXI_lite主模块的请求命令。
3.如权利要求1所述的多路复用器,其特征在于,还包括:
地址缓冲模块,用于缓存当前处理以及下一个将要处理的请求命令的地址信息;
写命令信息存储模块,用于缓存当前处理以及下一个将要处理的请求命令的数据长度信息、对应AXI_lite主模块的编号信息;
以及请求指示信息处理模块具体用于依次获得所述请求指示信息缓存模块中缓存的请求指示信息;根据获得的指示请求信息确定对应的AXI_lite主模块发出请求命令,并从所述地址缓冲模块获得该请求命令的地址信息、从所述写命令信息存储模块获得该请求命令的数据长度信息、该AXI_lite主模块的编号信息,处理该请求命令;并在处理该请求命令的同时,将下一个要处理的请求命令的地址信息缓存到所述地址缓冲模块中,将下一个要处理的请求命令的数据长度信息、对应AXI_lite主模块的编号信息缓存到所述写命令信息存储模块中。
4.如权利要求3所述的多路复用器,其特征在于,还包括:
数据缓冲模块,用于缓存当前处理以及下一个将要处理的写数据信息;以及
所述请求指示信息处理模块具体还用于在处理一个请求指示信息中某个AXI_lite主模块的请求命令时,从所述数据缓冲模块获得即将处理的写数据信息,并将下一个写数据信息缓存到所述数据缓冲模块中,并通过接口模块向对应AXI_lite主模块返回写数据准备好信号。
5.如权利要求4所述的多路复用器,其特征在于,
所述请求指示信息处理模块具体还用于在将下一个要处理的请求命令的地址信息缓存到所述地址缓冲模块后,通过所述接口模块向对应的AXI_lite主模块发送请求准备好信号。
6.如权利要求1-5任一所述的多路复用器,其特征在于,
所述请求指示信息包含多个与所述AXI_lite主模块个数相应的比特信息,每个比特信息用于分别指示各AXI_lite主模块是否发出请求命令:
若AXI_lite主模块发出请求命令,则所述请求指示信息中对应的比特信息为1,否则为0;或者
若AXI_lite主模块发出请求命令,则所述请求指示信息中对应的比特信息为0,否则为1。
7.如权利要求1-5任一所述的多路复用器,其特征在于,还包括:
优先级确定模块,用于确定各AXI_lite主模块的优先级;以及
所述请求指示信息处理模块还用于在处理包含多个AXI_lite主模块发出请求命令信息的请求指示信息时,根据所述优先级确定模块确定的各AXI_lite主模块的优先级依次处理该请求指示信息对应的多个AXI_lite主模块的请求命令。
8.如权利要求7所述的多路复用器,其特征在于,
所述优先级确定模块具体用于在向所述请求指示信息处理模块输出一个当前有请求命令的优先级最高的AXI_lite主模块的编号后,将该AXI_lite主模块优先级降为最低,将其它比该AXI_lite主模块原优先级低的AXI_lite主模块优先级分别增加1。
CN200810116126XA 2008-07-03 2008-07-03 一种基于axi总线的多路复用器 Expired - Fee Related CN101324869B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810116126XA CN101324869B (zh) 2008-07-03 2008-07-03 一种基于axi总线的多路复用器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810116126XA CN101324869B (zh) 2008-07-03 2008-07-03 一种基于axi总线的多路复用器

Publications (2)

Publication Number Publication Date
CN101324869A CN101324869A (zh) 2008-12-17
CN101324869B true CN101324869B (zh) 2010-04-14

Family

ID=40188414

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810116126XA Expired - Fee Related CN101324869B (zh) 2008-07-03 2008-07-03 一种基于axi总线的多路复用器

Country Status (1)

Country Link
CN (1) CN101324869B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101741722A (zh) * 2009-12-10 2010-06-16 中兴通讯股份有限公司 数据交互方法及装置
CN102103564B (zh) * 2009-12-22 2013-08-07 中兴通讯股份有限公司 用于实现总线连接的方法及系统
CN102135946A (zh) * 2010-01-27 2011-07-27 中兴通讯股份有限公司 一种数据处理方法和装置
CN102025934B (zh) * 2010-10-15 2012-01-11 西安交通大学 基于AXI总线的数字电视SoC的存储控制方法
CN102736997B (zh) * 2011-04-01 2017-05-03 中兴通讯股份有限公司 一种片上互联总线的仲裁方法和系统
WO2011137813A2 (zh) 2011-05-24 2011-11-10 华为技术有限公司 先进可扩展接口总线以及相应的数据传输方法
CN105634661A (zh) * 2014-11-05 2016-06-01 华为技术有限公司 传输信号的装置、传输链路和传输信号的方法
CN109828938B (zh) * 2018-12-13 2021-09-03 山东亚华电子股份有限公司 一种基于芯片的通信方法和装置
CN109947580A (zh) * 2019-03-27 2019-06-28 上海燧原智能科技有限公司 中断处理方法、装置、设备和存储介质
CN112368676A (zh) * 2019-09-29 2021-02-12 深圳市大疆创新科技有限公司 处理数据的方法和设备
CN111752881A (zh) * 2020-06-22 2020-10-09 深圳鲲云信息科技有限公司 一种模块间通信方法及系统
CN112559399A (zh) * 2020-11-27 2021-03-26 山东云海国创云计算装备产业创新中心有限公司 一种多axi接口的ddr控制器及其控制方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553249A (en) * 1995-03-08 1996-09-03 Unisys Corporation Dual bus adaptable data path interface system
US5687371A (en) * 1993-09-27 1997-11-11 Intel Corporation Selection from a plurality of bus operating speeds for a processor bus interface during processor reset
CN1189956A (zh) * 1996-03-19 1998-08-05 索尼公司 数据多路复用装置及其方法
CN1516030A (zh) * 2003-01-15 2004-07-28 威盛电子股份有限公司 重排多个数据存取指令的方法与装置
US7254657B1 (en) * 2005-04-29 2007-08-07 Unisys Corporation Dual mode capability for system bus

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5687371A (en) * 1993-09-27 1997-11-11 Intel Corporation Selection from a plurality of bus operating speeds for a processor bus interface during processor reset
US5553249A (en) * 1995-03-08 1996-09-03 Unisys Corporation Dual bus adaptable data path interface system
CN1189956A (zh) * 1996-03-19 1998-08-05 索尼公司 数据多路复用装置及其方法
CN1516030A (zh) * 2003-01-15 2004-07-28 威盛电子股份有限公司 重排多个数据存取指令的方法与装置
US7254657B1 (en) * 2005-04-29 2007-08-07 Unisys Corporation Dual mode capability for system bus

Also Published As

Publication number Publication date
CN101324869A (zh) 2008-12-17

Similar Documents

Publication Publication Date Title
CN101324869B (zh) 一种基于axi总线的多路复用器
US7529896B2 (en) Memory modules having a memory hub containing a posted write buffer, a memory device interface and a link interface, and method of posting write requests in memory modules
KR101747570B1 (ko) 가변 레이턴시들을 갖는 메모리 동작들을 위한 장치들 및 방법들
KR101693131B1 (ko) 가변 레이턴시들을 갖는 메모리 동작들을 위한 장치들 및 방법들
US8898415B2 (en) Simultaneous read and write data transfer
CN103077123A (zh) 一种数据写入和读取方法及装置
US20110296124A1 (en) Partitioning memory for access by multiple requesters
JP2008544424A (ja) Dramの並列処理を向上するシステム及び方法
CN109388590A (zh) 提升多通道dma访问性能的动态缓存块管理方法和装置
CN113641603A (zh) 一种基于axi协议的ddr仲裁与调度方法及系统
WO2010105520A1 (zh) 一种读数据的方法、装置和系统
CN102314400A (zh) 一种分散聚合式dma方法及装置
JP2011060162A (ja) メモリ制御装置
US7996601B2 (en) Apparatus and method of partially accessing dynamic random access memory
US7725645B2 (en) Dual use for data valid signal in non-volatile memory
CN100536021C (zh) 大容量高速缓冲存储器
CN101002272A (zh) 动态随机存取存储器内的数据寻址
CN113886287A (zh) 一种基于SoC的自适应实时缓存系统及方法
JPH08328949A (ja) 記憶装置
CN116185310B (zh) 一种存储器数据读写调度方法及装置
CN108027765B (zh) 一种内存访问方法以及计算机系统
TWI764311B (zh) 記憶體存取方法及智慧處理裝置
CN115586974B (zh) 内存控制器、系统、装置及电子设备
US7178000B1 (en) Trace buffer for DDR memories
WO2024012015A1 (zh) 一种存储系统、主控芯片、数据存储方法及数据读取方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: WUXI VIMICRO ELECTRONIC CO., LTD.

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

Effective date: 20110127

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

Free format text: CORRECT: ADDRESS; FROM: 100083 15/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, NEW DISTRICT, WUXI CITY, JIANGSU PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20110127

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

Patentee after: Wuxi Vimicro Co., Ltd.

Address before: 100083, Haidian District, Xueyuan Road, Beijing No. 35, Nanjing Ning building, 15 Floor

Patentee before: Beijing Vimicro Corporation

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100414

Termination date: 20170703

CF01 Termination of patent right due to non-payment of annual fee