CN103714026A - 一种支持原址数据交换的存储器访问方法及装置 - Google Patents
一种支持原址数据交换的存储器访问方法及装置 Download PDFInfo
- Publication number
- CN103714026A CN103714026A CN201410015782.6A CN201410015782A CN103714026A CN 103714026 A CN103714026 A CN 103714026A CN 201410015782 A CN201410015782 A CN 201410015782A CN 103714026 A CN103714026 A CN 103714026A
- Authority
- CN
- China
- Prior art keywords
- data
- read
- processor core
- address
- write
- 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.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种支持原址数据交换的存储器访问方法及装置,该方法先将处理器核的读写模式寄存器都置为数据交换模式,然后从本地存储器中读取数据并存储到发送FIFO中,再向片上互连网络仲裁申请数据交换请求,若同意并分配数据通道使用权,将发送FIFO中的数据输出给第二和第一处理器核的接收数据解包单元,并解包存储到接收FIFO中,再由读控制器读出本地存储器中的数据并存储到发送FIFO中,最后由写控制器将接收FIFO中的数据写入处理器核的本地存储器中。本发明可以不开辟临时缓冲区,直接在原数据存储地址内进行核间数据交换操作,提高了处理器的性能和存储器的利用率,具有性能好、功耗低、利用率高、处理速率快的优点。
Description
技术领域
本发明涉及多核微处理器领域,尤其涉及一种支持原址数据交换的存储器访问方法及装置。
背景技术
多核处理器通常包括多个相同的或者不同的处理核心、片上互联网络、外部存储器以及其他芯片的接口,其中片上互连网络通常使用总线、交叉开关网络或者片上网络对各个处理器核以及接口进行相连和通信。每个处理器核心一般包括程序存储器、取指和指令译码单元、执行单元、本地数据存储器以及本地的核间存储器访问装置(或者叫直接存储器访问控制器,DMA)。本地DMA与处理器的指令译码单元、本地的数据存储器以及片上互连网络相连。指令译码单元完成指令的译码,并将执行何种指令操作(读或者写操作)、源数据地址、目的数据地址以及搬移数据的大小等译码结果通过配置总线发送到DMA装置。DMA装置接受译码单元发来的操作指令,负责本地数据存储器与片上其他处理器核心的数据存储器,以及处理器外部存储器之间数据的存取操作。每个处理器核从外部存储器当中调取一小块数据进行处理,处理过程中可能需要其他处理器核产生的数据,其通过本地的DMA装置进行数据搬移操作。传统的DMA一般有两个通道,一个写通道和一个读通道。在数据的搬移过程中,上述两个通道不能同时进行传输,因此在执行多处理器***中核间数据交换时,首先在处理器核A和处理器核B的本地存储器当中分别开辟一块等大小的临时存储缓冲区,当A产生B所要的数据时,处理器核A启动本地DMA装置把相应的数据通过片上互连网络传给处理器核B的临时存储缓冲区当中。如果处理器核B也产生了处理器核A所需要的数据时,处理器核B必须等待处理器核A把数据传输完毕之后才能开始通过其本地DMA装置把相应的数据通过片上互连网络传输给处理器核A的临时存储缓冲区当中。这种处理器核A和B数据交换串行执行、延迟大、降低了处理器的性能,同时造成片上存储器利用率降低,增加了处理器的功耗。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种性能好、功耗低、利用率高、处理速率快的支持原址数据交换的存储器访问方法及装置。
为解决上述技术问题,本发明采用以下技术方案:
一种支持原址数据交换的存储器访问方法,包括以下步骤:
1)将第一处理器核和第二处理器核的本地读写模式寄存器置为数据交换模式,通过第一处理器核和第二处理器核的数据读写控制器从第一处理器核和第二处理器核的本地存储器中读取数据,并将数据分别存储到第一处理器核和第二处理器核的发送FIFO中。第一处理器核和第二处理器核的发送数据打包单元分别从所述第一处理器核和第二处理器核的发送FIFO中读取数据,并分别根据第一处理器核和第二处理器核的读写模式寄存器,目的地址寄存器的值向片上互连网络仲裁单元申请第一处理器核到第二处理器核、第二处理器核到第一处理器核的数据通道;
2)所述片上互连网络仲裁单元在同时接到所述第一处理器核和第二处理器核进行数据交换模式的通道请求时,分别分配第一处理器核到第二处理器核的数据通道给第一处理器核,分配第二处理器核到第一处理器核的数据通道给第二处理器核;
3)所述第一处理器核和第二处理器核的本地DMA装置分别将步骤1)中所述第一处理器核和第二处理器核的发送FIFO中的数据打包之后通过数据通道输出给第二处理器核和第一处理器核的接受数据解包单元,由所述接收数据解包单元将所述的数据包进行解包并存储到第一处理器核和第二处理器核的接收FIFO中;
4)由步骤3)中所述第一处理器核和第二处理器核的核本地DMA装置分别对发送和接收的数据进行读写控制,所述数据读写控制器对读操作优先,由读控制器读出本地存储器的数据,并将数据存储到发送FIFO中;
5)所述第一处理器核和第二处理器核的本地存储器中写地址小于读地址时,写控制器开始将步骤3)中所述的接收FIFO中的数据分别写入所述第一处理器核和第二处理器核的的本地存储器当中,完成原址数据交换。
作为本发明的支持原址数据交换的存储器访问方法的进一步改进:
所述步骤2)中,所述发送数据打包单元根据数据的目的地址和读写模式向片上互连网络仲裁单元申请所述第一处理器核到第二处理器核的数据通道,如果得到通道的使用权,则由所述发送数据打包单元先将读写模式信息、源地址信息、目的地址信息和传输字节数信息组成数据包头发送给第二处理器核,紧跟着在再发送数据给所述第二处理器核。
所述步骤3)中,所述接收数据解包单元将所述数据包的读写模式信息、目的地址信息和接收字节数信息分别存储在接收数据读写模式寄存器、接收数据目的地址寄存器和接收字节数寄存器当中,然后接收并将数据解包存储到所述接收FIFO当中。
本发明技术方案还提供了一种支持原址数据交换的存储器访问装置,包括数据读写控制器、发送FIFO、接收FIFO、发送数据打包单元以及接收数据解包单元;
所述数据读写控制器包括读写模式寄存器、源地址寄存器、目的地址寄存器、传输字节数寄存器、读控制器、写控制器以及地址比较和选择部件,所述数据读写控制器按照先入先出的顺序从所述接收FIFO当中读取数据并将数据发送给所述本地存储器;
所述发送FIFO与所述数据读写控制器、发送数据打包单元相连,接收从所述本地存储器输出的数据;
所述接收FIFO与所述接收数据解包单元、数据读写控制器相连,接收从所述数据解包单元输出的数据;
所述发送数据打包单元包括一个数据打包状态机和一个发送数据计数器,所述发送数据打包单元与所述发送FIFO、数据读写控制器和片上互连网络相连,所述发送数据打包单元按先入先出的顺序从发送FIFO当中读数据;
所述接收数据解包单元包括接收字节数寄存器、接收数据目的寄存器、接收数据写模式寄存器、接收数据计数器和数据解包状态机,所述接收数据解包单元与接收FIFO,数据读写控制器,以及片上互连网络相连,对接收到的数据包进行解包。
作为本发明的支持原址数据交换的存储器访问装置的进一步改进:
所述存储器访问装置与本地存储器之间的数据总线位宽为W至少两倍于所述存储器访问装置与片上互连网络的数据总线位宽为w字节。
所述读写模式寄存器与外部输入的配置总线、读控制器、以及发送数据打包单元和接收数据解包单元相连,所述读写模式寄存器接受所述配置总线和来自接收数据解包单元的异地读配置总线的赋值操作,并把寄存器的数据值通过信号线输出到所述读控制器和发送数据打包单元,同时还接受所述读控制器的清零操作;
所述源地址寄存器与外部输入的配置总线、读控制器、发送数据打包单元和接收数据解包单元相连,所述源地址寄存器接受配置总线和来自接收数据解包单元的异地读配置总线的赋值操作,并把寄存器的数据值通过信号线输出到读控制器和发送数据打包单元。
所述目的地址寄存器与外部输入的配置总线、发送数据打包单元和接收数据解包单元相连,所述目的地址寄存器接受配置总线和来自接收数据解包单元的异地读配置总线的赋值操作,并把寄存器的数据值通过信号线直接输出到发送数据打包单元;
所述传输字节数寄存器与外部输入的配置总线、读控制器、发送数据打包单元和接收数据解包单元相连,所述传输字节数寄存器接受配置总线和来自接收数据解包单元的异地读配置总线的赋值操作,并把寄存器的数据值通过信号线输出到读控制器和发送数据打包单元。
所述读控制器包括读状态机、读计数器以及读地址加法器,与所述读写模式寄存器、源地址寄存器、传输字节数寄存器、地址比较和地址选择部件以及写控制器相连,所述读地址加法器将所述读计数器的值与源地址寄存器的值相加得到读地址,并将所述读地址输出到地址比较和地址选择部件,所述读控制器根据读写模式寄存器的模式进行本地存储器的读访问操作;
所述写控制器包括写状态机、写计数器以及写地址加法器,与读写模式寄存器、接收FIFO、接收数据解包单元、地址比较和地址选择部件以及读控制器相连,所述写地址加法器将从所述接收数据解包单元输入的接收数据目的地址与写计数器的值相加得到写地址,并将所述写地址的值输出到地址比较和地址选择部件;
所述地址比较和地址选择部件与所述读控制器、写控制器、接收数据解包单元和读写模式寄存器相连,接收所述读控制器输出的读地址信号和写控制器输出的写地址信号,对读地址和写地址进行比较,并把比较结果返回给所述写控制器,同时根据从所述接收数据解包单元输出的接收数据写模式和读写模式寄存器的值对所述读地址和写地址进行操作。
所述发送数据打包单元与片上互连网络连接相连,包括一个数据打包状态机和一个发送数据计数器,按先入先出的顺序从所述发送FIFO当中读数据,并将包括一个数据包的数据发送到片上互连网络,所述数据包包括读写模式、目的地址、源地址和传输字节数四种信息。
所述接收字节数寄存器、接收数据目的地址寄存器、接收数据读写模式寄存器的值通过信号线直接输出到所述数据读写控制器。
与现有技术相比,本发明的优点在于:
1、本发明直接支持双向的核间独立数据搬移,减少了数据通信开销,从而提高了处理器的性能。
2、本发明在不开辟临时缓冲区的情况下,直接在原数据存储地址空间内进行核间数据交换操作,不但减少了多核之间数据通信开销,而且提高了存储器的利用率。
3、本发明在核间数据交换操作当中,由片上互连网络仲裁单元对两个处理器核之间的数据交换操作保持同步进行,进一步减少了额外的数据同步开销。
附图说明
图1是本发明实施例的支持原址数据交换的存储器访问方法流程示意图。
图2是本发明实施例的存储器访问装置在多核处理器当中的位置和接口示意图。
图3是本发明实施例的支持原址数据交换的存储器访问装置示意图。
图4是本发明实施例的存储器访问装置中的数据读写控制器示意图。
图5是本发明实施例的DMA装置的内部读状态机的状态转换图。
图6是本发明实施例的DMA装置的内部写状态机的状态转换图。
图7是本发明实施例的DMA装置的发送数据打包单元的示意图。
图8是本发明实施例的DMA装置的数据打包状态机的状态转换图。
图9是本发明实施例的DMA装置的接收数据打包单元示意图。
图10是本发明实施例的DMA装置的数据解包状态机的状态转换图。
图11是使用本发明实施例的DMA装置进行数据交换的示意图。
图例说明:1、数据读写控制器;2、发送FIFO;3、接收FIFO;4、发送数据打包单元;5、接收数据解包单元;11、读控制器;12、写控制器;13、读写模式寄存器;14、源地址寄存器;15、目的地址寄存器;16、传输字节数寄存器;17、地址比较和地址选择部件;41、数据打包状态机;42、发送数据计数器;51、接收字节数寄存器;52、接收数据目的地址寄存器;53、接收数据源地址寄存器;54、接收数据读写模式寄存器;55、数据解包状态机;56、接收数据计数器;111、读状态机;112、读计数器;113、读地址加法器;121、写状态机;122、写计数器;123、写地址加法器。
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细说明。
图1示出了本发明实施例的存储器中进行原址数据交换的访问方法步骤流程。其中第一处理器核和第二处理器核分别表示多个处理器核中的任意两个。本实施例中,处理器核的数量为四个,第一处理器核为处理器核A,第二处理器核为处理器核B。如图1所示,本发明实施例的存储器中进行原址数据交换的访问方法的实施步骤如下:
1)分别将处理器核A和处理器核B的读写模式寄存器13置为数据交换模式,通过处理器核A和处理器核B的数据读写控制器1从处理器核A和处理器核B的本地存储器中读取数据,并将数据分别存储到处理器核A和处理器核B的发送FIFO 2中,处理器核A和处理器核B的发送数据打包单元4从各自的发送FIFO 2中读取数据,并向片上互连网络仲裁单元申请数据交换请求;
2)片上互连网络仲裁同时接到处理器核A和处理器核B的数据交换请求时,同意其数据交换请求,并向处理器核A和处理器核B同时分配数据通道使用权。
3)处理器核A和处理器核B的本地DMA装置将步骤1)中发送FIFO2中的数据通过数据通道分别输出给处理器核B和处理器核A的接收数据解包单元5,由接收数据解包单元5接收并将数据解包分别存储到处理器核B和处理器核A的接收FIFO3中。
4)步骤3)中处理器核A和处理器核B的本地DMA装置对发送和接收的数据进行读写控制,数据读写控制器1优先处理读操作,由读控制器11读出本地存储器中的数据,并将数据存储到发送FIFO2中。
5)处理器核A和处理器核B的本地存储器中写地址小于读地址时,写控制器12开始将步骤3)中接收FIFO3中的数据分别写入处理器核A和处理器核B的本地存储器中,完成原址数据交换。
本实施例中,发送数据打包单元4根据数据的目的地址和读写模式向片上互连网络仲裁单元申请处理器核A到处理器核B的数据通道,如果得到通道的使用权,则由发送数据打包单元4先将读写模式信息、源地址信息、目的地址信息和传输字节数信息组成数据包头发送给处理器核B,紧跟着再发送数据给处理器核B。
本实施例中,接收数据解包单元5将数据包头的读写模式信息、目的地址信息和接收字节数信息分别存储在接收数据读写模式寄存器54、接收数据目的地址寄存器15和接收字节数寄存器51当中,然后接收并将数据打包存储到接收FIFO3当中。
图2示出了四核处理器中本发明的存储器访问装置实施例。由图可知,每个处理器核通过片上互连网络相连,每个处理器核包括一个程序存储器、一个取指和译码单元、一个执行单元、一个数据存储器和一个本发明的存储器访问装置。本实施例中,存储器访问装置与处理器核的指令译码单元、本地存储器以及片上互连网络相连,接收指令译码单元发送的配置信息,完成相应的操作之后向指令译码单元返回一个中断信号。本发明中存储器访问装置与本地存储器之间的数据总线位宽为W字节,与片上互连网络的数据总线位宽为w字节,其中W=n*w,n是大于或等于2的正整数。本地处理器通过存储器访问装置访问和搬移其他处理器核的本地存储器数据。
如图3所示,本发明的存储器访问装置包括数据读写控制器1、发送FIFO2、接收FIFO3、发送数据打包单元4和接收数据解包单元5。其中数据读写控制器1分别与发送FIFO2、接收FIFO3、发送数据打包单元4和接收数据解包单元5相连,控制数据的读和写操作,并优先使能读访问操作,只有当读操作没有启动或者发送FIFO2为满时,使能写访问操作;数据读写控制器1按照先入先出的顺序从接收FIFO3当中读取数据并将数据发送给本地存储器,在控制读和写操作时分时地占用存储器端口;发送FIFO2与数据读写控制器1、发送数据打包单元4相连,其输入输出数据位宽为W字节,接收从本地存储器输出的数据;接收FIFO3与接收数据解包单元5、数据读写控制器1相连,其输入输出数据位宽为W字节,接收从接收数据解包单元5输出的数据;发送数据打包单元4与发送FIFO2,数据读写控制器1以及片上互连网络相连,发送数据打包单元4与片上互连网络连接的数据总线位宽为w个字节,发送到片上互连网络的数据包包括读写模式、目的地址、源地址以及传输字节数四种信息以及其他相关信息;接收数据解包单元5与接收FIFO3,数据读写控制器1,以及片上互连网络相连,其操作与发送数据打包单元4相反,对接收到的数据包进行解包。
如图4所示,本发明存储器访问装置中的数据读写控制器1包括读写模式寄存器13、源地址寄存器14、目的地址寄存器15、传输字节数寄存器16、读控制器11、写控制器12和地址比较和地址选择部件17。当***复位使能有效时,所有的寄存器被赋予零值,读状态机111进入空闲状态。在同时有对本地存储器的读写操作时,优先使能读操作。
本实施例中,读写模式寄存器13与外部输入的配置总线,读控制器11,以及发送数据打包单元4和接收数据解包单元5相连,其接受配置总线和来自接收数据解包单元5的异地读配置总线的赋值操作,将其数据值通过信号线输出到读控制器11和发送数据打包单元4,同时读写模式寄存器13也接受读控制器11的清零操作。通过配置不同的值,读写模式寄存器13有三种模式:本地读数据模式,异地读数据模式以及数据交换模式;
本实施例中,源地址寄存器14与外部输入的配置总线,读控制器11,发送数据打包单元4和接收数据解包单元5相连,接受配置总线和来自接收数据解包单元5的异地读配置总线的赋值,将其数据值通过信号线输出到读控制器11和发送数据打包单元4;
本实施例中,目的地址寄存器15与外部输入的配置总线、发送数据打包单元4和接收数据解包单元5相连,接受配置总线和来自接收数据解包单元5的异地读配置总线的赋值,并将其数据值通过信号线直接输出到发送数据打包单元4;
本实施例中,传输字节数寄存器16与外部输入的配置总线、读控制器11、发送数据打包单元4和接收数据解包单元5相连,接受配置总线和来自接收数据解包单元5的异地读配置总线的赋值,将其数据值通过信号线输出到读控制器11和发送数据打包单元4;如图3所示,读控制器11与读写模式寄存器13、源地址寄存器14、传输字节数寄存器16、地址比较和地址选择部件17和写控制器12相连,根据读写模式寄存器13的值进行本地存储器的读访问操作。
本实施例中,读控制器11包括读状态机111,读计数器112以及读地址加法器113,其中读地址加法器113将源地址寄存器14的值与读计数器112的值进行相加得到读地址,并输出读地址到地址比较和地址选择部件17。读状态机111由读空闲状态,读数据状态,读完成等待状态,写完成等待状态四个状态组成,其转换过程如图5所示。当***复位使能有效时,读状态机111进入读空闲状态,读计数器112清零,所有输出使能信号无效。读状态机111处于读空闲模式,若读写模式寄存器13的值为本地读模式或者数据交换模式时,读状态机111进入读数据状态,置读状态机111忙使能有效,输出读地址,读计数器112加W。读状态机111处于读数据状态,若发送FIFO2非满使能无效,则暂停读操作,置所有输出使能无效。当读计数器112的值等于传输字节数寄存器16的值时,读操作完成,所有输出的使能信号无效。如果此时是本地读模式,或者是数据交换模式,并且写数据完成使能有效,则下一个时钟周期进入读完成等待状态,读状态机111处于读完成等待状态,若数据打包完成使能有效时,下一个时钟周期转入读空闲状态,读计数器112清零,所有输出使能无效;如果此时是数据交换模式,并且数据打包完成使能有效,则进入写完成等待状态。读状态机111处于写完成等待状态,若写数据完成使能有效时,读状态机111进入读空闲状态,读计数器112清0,所有输出使能无效;
本实施例中,写控制器12与读写模式寄存器13、接收FIFO3、接收数据解包单元5、地址比较和地址选择部件17以及读控制器11相连,根据从接收数据解包单元5输出的接收数据写模式信号的值进行写操作。写控制器12包括写状态机121,写计数器122和写地址加法器123,其中写地址加法器123将从接收数据解包单元5输出的接收数据目的地址信号的值与写计数器122的值相加得到写地址,并将写地址输出到地址比较和地址选择部件17。写状态机121由写空闲状态和写数据状态组成,其转换过程如图6所示。当***复位使能有效时,写状态机121进入写空闲状态,写计数器122清零,所有输出使能信号无效。写状态机121处于写空闲状态,若接收FIFO3非空使能有效,则下一个周期进入写数据状态,此时如果读状态机111忙使能无效,则写计数器122加W,输出写地址,进行存储器写操作。写状态机121处于写数据状态,如果接收FIFO3非空使能无效或者读状态机111忙使能有效,则暂停写操作,所有输出使能信号无效。当接收FIFO3非空使能有效并且读状态机111忙使能无效时,继续写操作。直到写计数器122的值等于从接收数据解包单元5输出的接收数据字节数时,进入写空闲状态,置写数据完成使能有效,写计数器122清零,其他输出使能信号无效;如图4所示,地址比较和地址选择部件17与读控制器11、写控制器12、接收数据解包单元5和读写模式寄存器13相连,完成对读地址和写地址的比较和选择输出操作,并把比较结果返回给写控制器12。同时根据从接收数据解包单元5输入的接收数据写模式和读写模式寄存器13的值对读地址和写地址进行操作。当读状态机111忙使能无效,读写模式寄存器13的值和接收数据写模式都为数据交换模式,并且写地址小于读地址的情况下,选择写地址并输出到外部存储器地址总线接口;当读状态机111忙使能无效,并且接收数据写模式为本地读数据模式时,选择写地址并输出到外部存储器地址总线接口。其余情况根据读状态机111忙使能信号进行操作。如果读状态机111忙使能有效,选择输出读地址到存储器地址总线端口,否则置存储器地址总线为0。
如图7所示,本发明存储器访问装置中的发送数据打包单元4与发送FIFO2,数据读写控制器1以及片上互连网络相连,其包括一个数据打包状态机41和一个发送数据计数器42。发送数据打包单元4与片上互连网络连接的数据总线位宽为w个字节,发送到片上互连网络的数据包括一个数据包头和紧跟其后的数据,其中数据包头包括读写模式、目的地址、源地址以及传输字节数四种信息。
本实施例中,数据打包状态机41由空闲、总线申请,发送包头和发送数据四个状态,其状态转换如图8所示。当***复位使能有效时,数据打包状态机41进入空闲状态,所有输出使能无效,发送数据计数器42清零。数据打包状态机41处于空闲状态,若数据读写控制器1当中的读写模式寄存器13为本地读数据、数据交换或者异地读数据模式时,数据打包状态机41进入总线申请状态,置数据包发送请求信号有效。数据打包状态机41处于总线申请状态,若数据包发送使能信号有效,则进入发送包头状态,开始发送包头信息:读取数据读写控制器1中的传输字节数寄存器16、目的地址寄存器15、源地址寄存器14和读写模式寄存器13当中的信息进行打包,发送到发送数据包总线上,并使能发送数据包有效信号。数据打包状态机41处于发送数据包状态,若读写模式寄存器13的值为异地读数据模式,当发送完数据包信息之后则转入空闲状态,置数据打包完成使能有效,其他输出使能无效;若读写模式寄存器13的值为本地读数据或者数据交换模式时,当发送完数据包信息之后则转入发送数据状态,此时如果发送FIFO2为非空,那么读取发送FIFO2的数据,将数据按地址从小到大的顺序拆分成多个w字节的小数据并发送到数据包总线上,每发送一个w字节数据,发送数据计数器42加w。直到发送数据计数器42的值等于传输字节数时,本次数据打包完成,置数据打包完成使能有效,其他输出使能无效,状态机转入空闲状态,发送数据计数器42清0。
如图9所示,本发明存储器访问装置中的接收数据解包单元5与接收FIFO3、数据读写控制器1和片上互连网络相连,其工作原理与发送数据打包单元4相反,从总线上接收数据包,并将数据的信息解包,数据存储器在接收FIFO3当中。本实施例中,接收数据解包单元5包括接收字节数寄存器51、接收数据目的地址寄存器52、接收数据源地址寄存器53、接收数据读写模式寄存器54、接收数据计数器56和数据解包状态机55。其中,接收字节数寄存器51、接收数据目的地址寄存器52、接收数据读写模式寄存器54的值通过信号线直接输出到数据读写控制器1。
本实施例中,数据解包状态机55包括空闲、同意数据包接收请求、接收包头、接收数据和等待写完成五个状态,其状态转换如图10所示。当***复位使能有效时,数据解包状态机55进入空闲状态,接收数据计数器56清零,所有输出使能信号无效。数据解包状态机55处于空闲状态,若数据包接收请求有效,并判断接收请求的类型。如果是异地读请求,检查从数据读写控制器1发来的读写模式信号此时是空闲(即是否等于0)。如果是空闲,则进入接收数据包头状态,置数据包接收使能有效,否则置数据包接收使能无效,等待数据读写控制器1的读操作完成;如果接收请求的类型是本地读数据或者数据交换模式,置数据包接收使能有效,进入接收数据包头状态。数据解包状态机55处于接收数据包头状态,开始接收并解码数据包头信息:如果是异地读数据请求,则将数据包包括的源地址信息,目的地址信息,传输字节数信息,以及读写模式信息通过异地读配置总线分别写入数据读写控制器1的目的地址寄存器15、源地址寄存器14、传输字节数寄存器16和读写模式寄存器13,写完之后,数据解包状态机55在下个时钟周期转如空闲状态;如果是本地读数据模式或者数据交换模式,则将数据包包括的目的地址信息,传输字节数信息,以及读写模式信息分别写入接收数据目的地址寄存器52、接收字节数寄存器51和接收数据读写模式寄存器54,写完之后,数据解包状态机55进入接收数据状态,开始接收数据。每接收一个w字节数据,接收数据计数器56加w,直到接收数据计数器56的值等于接收字节数寄存器51的值,数据解包状态机55进入等待写完成状态。数据解包状态机55处于等待写完成状态,若写数据完成使能有效,则数据解包状态机55进入空闲状态,置接收数据计算器为0,所有输出使能无效。
图11示出了使用本发明的存储器访问装置进行核间数据交换操作过程。本发明的存储器访问装置通过处理器核A内部的发送FIFO2和处理器核B内部的接收FIFO3,处理器核A内部的接收FIFO3和处理器核B内部的发送FIFO2分别存储了数据块B1和B3一部分要搬移的数据,在处理器核A和处理器核B的本地存储器访问装置里,在原数据存储地址空间上直接进行数据交换,数据读写控制器1只有在写地址小于读地址情况下才能把数据写入本地存储器,保证了存储器当中的每个数据先读后写。这样就能实现交换数据双向传输,既加速了数据通信速度,从而提高了处理器性能,又使得数据交换得以在原址上进行,提高了存储器利用率。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (10)
1.一种支持原址数据交换的存储器访问方法,其特征在于,包括以下步骤:
1)将第一处理器核和第二处理器核的本地读写模式寄存器(13)置为数据交换模式,通过所述第一处理器核和第二处理器核的数据读写控制器(1)从第一处理器核和第二处理器核的本地存储器中读取数据,并将数据分别存储到第一处理器核和第二处理器核的发送FIFO(2)中,再由第一处理器核和第二处理器核的发送数据打包单元(4)分别从第一处理器核和第二处理器核的发送FIFO(2)中读取数据,并分别根据第一处理器核和第二处理器核的读写模式寄存器(13)、目的地址寄存器(15)的值向片上互连网络仲裁单元申请第一处理器核到第二处理器核、第二处理器核到第一处理器核的数据通道;
2)所述片上互连网络仲裁单元在同时接到所述第一处理器核和第二处理器核进行数据交换模式的通道请求时,分别分配第一处理器核到第二处理器核的数据通道给第一处理器核,分配第二处理器核到第一处理器核的数据通道给第二处理器核;
3)所述第一处理器核和第二处理器核的本地DMA装置分别将步骤1)中所述第一处理器核和第二处理器核的发送FIFO(2)中的数据打包之后通过数据通道输出给第二处理器核和第一处理器核的接收数据解包单元(5),由所述接收数据解包单元(5)将所述数据包进行解包并存储到第一处理器核和第二处理器核的接收FIFO(3)中;
4)由步骤3)中所述第一处理器核和第二处理器核的本地DMA装置分别对发送和接收的数据进行读写控制,数据读写控制器(1)对读操作优先,由读控制器(11)读出本地存储器的数据,并将数据存储到发送FIFO(2)中;
5)所述第一处理器核和第二处理器核的本地存储器中写地址小于读地址时,写控制器(12)开始将步骤3)中所述接收FIFO(3)中的数据分别写入所述第一处理器核和第二处理器核的的本地存储器当中,完成原址数据交换。
2.根据权利要求1所述的支持原址数据交换的存储器访问方法,其特征在于:所述步骤2)中,所述第一处理器核的发送数据打包单元(4)根据数据的目的地址和读写模式向片上互连网络仲裁单元申请所述第一处理器核到第二处理器核的数据通道,所述片上互联网络仲裁在同时接收到第一处理器核和第二处理器核发出的数据交换请求时,将分别分配空闲的数据通道给第一处理器核和第二处理器核,如果得到通道的使用权,则由所述发送数据打包单元(4)先将读写模式信息、源地址信息、目的地址信息和传输字节数信息组成数据包头发送给第二处理器核,紧跟着再发送其他数据给所述第二处理器核。
3.根据权利要求2所述的支持原址数据交换的存储器访问方法,其特征在于:所述步骤3)中,所述接收数据解包单元(5)将所述数据包头的读写模式信息、目的地址信息和接收字节数信息分别存储在接收数据读写模式寄存器(54)、接收数据目的地址寄存器(52)和接收字节数寄存器(51)当中,然后接收并将数据解包存储到所述接收FIFO(3)当中。
4.一种支持原址数据交换的存储器访问装置,其特征在于:包括数据读写控制器(1)、发送FIFO(2)、接收FIFO(3)、发送数据打包单元(4)以及接收数据解包单元(5);
所述数据读写控制器(1)包括读写模式寄存器(13)、源地址寄存器(14)、目的地址寄存器(15)、传输字节数寄存器(16)、读控制器(11)、写控制器(12)以及地址比较和地址选择部件(17),所述数据读写控制器(1)按照先入先出的顺序从所述接收FIFO(3)当中读取数据并将数据发送给所述本地存储器;
所述发送FIFO(2)与所述数据读写控制器(1)、发送数据打包单元(4)相连,接收从所述本地存储器输出的数据;
所述接收FIFO(3)与所述接收数据解包单元(5)、数据读写控制器(1)相连,接收从所述接收数据解包单元(5)输出的数据;
所述发送数据打包单元(4)包括一个数据打包状态机(41)和一个发送数据计数器(42),所述发送数据打包单元(4)与所述发送FIFO(2)、数据读写控制器(1)和片上互连网络相连,所述发送数据打包单元(4)按先入先出的顺序从发送FIFO(2)当中读数据;
所述接收数据解包单元(5)包括接收字节数寄存器(51)、接收数据目的地址寄存器(52)、接收数据源地址寄存器(53)、接收数据读写模式寄存器(54)、接收数据计数器(56)和数据解包状态机(55),所述接收数据解包单元(5)与接收FIFO(3)、数据读写控制器(1)和以及片上互连网络相连,对接收到的数据包进行解包。
5.根据权利要求4所述的支持原址数据交换的存储器访问装置,其特征在于:所述存储器访问装置与本地存储器之间的数据总线位宽为W至少两倍于所述存储器访问装置与片上互连网络的数据总线位宽为w字节。
6.根据权利要求4所述的支持原址数据交换的存储器访问装置,其特征在于:
所述读写模式寄存器(13)与外部输入的配置总线、读控制器(11)、以及发送数据打包单元(4)和接收数据解包单元(5)相连,所述读写模式寄存器(13)接受所述配置总线和来自接收数据解包单元(5)的异地读配置总线的赋值操作,并把所述读写模式寄存器(13)的数据值通过信号线输出到所述读控制器(11)和发送数据打包单元(4),同时还接受所述读控制器(11)的清零操作;
所述源地址寄存器(14)与外部输入的配置总线、读控制器(11)、发送数据打包单元(4)和接收数据解包单元(5)相连,所述源地址寄存器(14)接受配置总线和来自接收数据解包单元(5)的异地读配置总线的赋值操作,并把所述源地址寄存器(14)的数据值通过信号线输出到读控制器(11)和发送数据打包单元(4)。
7.根据权利要求4所述的支持原址数据交换的存储器访问装置,其特征在于:所述目的地址寄存器(15)与外部输入的配置总线、发送数据打包单元(4)和接收数据解包单元(5)相连,所述目的地址寄存器(15)接受配置总线和来自接收数据解包单元(5)的异地读配置总线的赋值操作,并把所述目的地址寄存器(15)的数据值通过信号线直接输出到发送数据打包单元(4);
所述传输字节数寄存器(16)与外部输入的配置总线、读控制器(11)、发送数据打包单元(4)和接收数据解包单元(5)相连,所述传输字节数寄存器(16)接受配置总线和来自接收数据解包单元(5)的异地读配置总线的赋值操作,并把所述传输字节数寄存器(16)的数据值通过信号线输出到读控制器(11)和发送数据打包单元(4)。
8.根据权利要求4所述的支持原址数据交换的存储器访问装置,其特征在于:所述读控制器(11)包括读状态机(111)、读计数器(112)以及读地址加法器(113),与所述读写模式寄存器(13)、源地址寄存器(14)、传输字节数寄存器(16)、地址比较和地址选择部件(17)以及写控制器(12)相连,所述读地址加法器(113)将所述读计数器(112)的值与源地址寄存器(14)的值相加得到读地址,并将所述读地址输出到地址比较和地址选择部件(17),所述读控制器(11)根据读写模式寄存器(13)的模式进行本地存储器的读访问操作;
所述写控制器(12)包括写状态机(121)、写计数器(122)以及写地址加法器(123),与读写模式寄存器(13)、接收FIFO(3)、接收数据解包单元(5)、地址比较和地址选择部件(17)以及读控制器(11)相连,所述写地址加法器(123)将从所述接收数据解包单元(5)输入的接收数据目的地址与写计数器(122)的值相加得到写地址,并将所述写地址的值输出到地址比较和地址选择部件(17);
所述地址比较和地址选择部件(17)与所述读控制器(11)、写控制器(12)、接收数据解包单元(5)和读写模式寄存器(13)相连,接收所述读控制器(11)输出的读地址信号和写控制器(12)输出的写地址信号,对读地址和写地址进行比较,并把比较结果返回给所述写控制器(12),同时根据从所述接收数据解包单元(5)输出的接收数据写模式信息和读写模式寄存器(13)的值对所述读地址和写地址进行操作。
9.根据权利要求4所述的支持原址数据交换的存储器访问装置,其特征在于:所述发送数据打包单元(4)与片上互连网络连接相连,包括一个数据打包状态机(41)和一个发送数据计数器(42),按先入先出的顺序从所述发送FIFO(2)当中读数据,并将读出的数据打包之后发送到片上互连网络,所述数据包包括读写模式、目的地址、源地址和传输字节数四种信息。
10.根据权利要求4所述的支持原址数据交换的存储器访问装置,其特征在于:所述接收字节数寄存器(51)、接收数据目的地址寄存器(52)、接收数据读写模式寄存器(54)的值通过信号线直接输出到所述数据读写控制器(1)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410015782.6A CN103714026B (zh) | 2014-01-14 | 2014-01-14 | 一种支持原址数据交换的存储器访问方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410015782.6A CN103714026B (zh) | 2014-01-14 | 2014-01-14 | 一种支持原址数据交换的存储器访问方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103714026A true CN103714026A (zh) | 2014-04-09 |
CN103714026B CN103714026B (zh) | 2016-09-28 |
Family
ID=50407020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410015782.6A Active CN103714026B (zh) | 2014-01-14 | 2014-01-14 | 一种支持原址数据交换的存储器访问方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103714026B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182360A (zh) * | 2014-08-18 | 2014-12-03 | 记忆科技(深圳)有限公司 | 多核环境的跟踪日志输出处理方法及*** |
CN104461931A (zh) * | 2014-08-18 | 2015-03-25 | 记忆科技(深圳)有限公司 | 多核存储装置及多核环境的跟踪日志输出处理方法 |
CN106257431A (zh) * | 2015-06-19 | 2016-12-28 | 罗伯特·博世有限公司 | 自动倍增存储位的内容的存储单元和具有其的数据网络 |
CN108701099A (zh) * | 2016-03-03 | 2018-10-23 | 高通股份有限公司 | 用于存储器***的功率节省技术 |
WO2019084789A1 (zh) * | 2017-10-31 | 2019-05-09 | 深圳市大疆创新科技有限公司 | 直接存储器访问控制器、数据读取方法和数据写入方法 |
CN111061671A (zh) * | 2019-12-13 | 2020-04-24 | 上海灵动微电子股份有限公司 | 一种spi传输控制方法、发送设备和接收设备 |
CN112970010A (zh) * | 2018-11-09 | 2021-06-15 | 赛灵思公司 | 流式传输平台流和架构 |
WO2021120714A1 (zh) * | 2019-12-18 | 2021-06-24 | 成都海光微电子技术有限公司 | 数据交换方法、装置、处理器及计算机*** |
CN115327586A (zh) * | 2022-10-13 | 2022-11-11 | 北京凯芯微科技有限公司 | 一种导航卫星信号的处理装置和信号处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1223730A (zh) * | 1996-06-27 | 1999-07-21 | 交互数字技术公司 | 并行分组模块间仲裁的高速控制和数据总线 |
CN101046786A (zh) * | 2007-04-27 | 2007-10-03 | 北京中星微电子有限公司 | 一种实现高效dma传输的dma控制器及传输方法 |
US20080281998A1 (en) * | 2007-05-09 | 2008-11-13 | Charles J Archer | Direct Memory Access Transfer Completion Notification |
CN103210384A (zh) * | 2010-11-15 | 2013-07-17 | 大陆-特韦斯贸易合伙股份公司及两合公司 | 用于在处理器模块之间传输数据的方法和电路装置 |
-
2014
- 2014-01-14 CN CN201410015782.6A patent/CN103714026B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1223730A (zh) * | 1996-06-27 | 1999-07-21 | 交互数字技术公司 | 并行分组模块间仲裁的高速控制和数据总线 |
CN101046786A (zh) * | 2007-04-27 | 2007-10-03 | 北京中星微电子有限公司 | 一种实现高效dma传输的dma控制器及传输方法 |
US20080281998A1 (en) * | 2007-05-09 | 2008-11-13 | Charles J Archer | Direct Memory Access Transfer Completion Notification |
CN103210384A (zh) * | 2010-11-15 | 2013-07-17 | 大陆-特韦斯贸易合伙股份公司及两合公司 | 用于在处理器模块之间传输数据的方法和电路装置 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182360A (zh) * | 2014-08-18 | 2014-12-03 | 记忆科技(深圳)有限公司 | 多核环境的跟踪日志输出处理方法及*** |
CN104461931A (zh) * | 2014-08-18 | 2015-03-25 | 记忆科技(深圳)有限公司 | 多核存储装置及多核环境的跟踪日志输出处理方法 |
CN104182360B (zh) * | 2014-08-18 | 2017-12-08 | 记忆科技(深圳)有限公司 | 多核环境的跟踪日志输出处理方法及*** |
CN106257431A (zh) * | 2015-06-19 | 2016-12-28 | 罗伯特·博世有限公司 | 自动倍增存储位的内容的存储单元和具有其的数据网络 |
CN106257431B (zh) * | 2015-06-19 | 2022-09-02 | 罗伯特·博世有限公司 | 自动倍增存储位的内容的存储单元和具有其的数据网络 |
CN108701099B (zh) * | 2016-03-03 | 2022-05-03 | 高通股份有限公司 | 用于存储器***的功率节省技术 |
CN108701099A (zh) * | 2016-03-03 | 2018-10-23 | 高通股份有限公司 | 用于存储器***的功率节省技术 |
WO2019084789A1 (zh) * | 2017-10-31 | 2019-05-09 | 深圳市大疆创新科技有限公司 | 直接存储器访问控制器、数据读取方法和数据写入方法 |
CN112970010A (zh) * | 2018-11-09 | 2021-06-15 | 赛灵思公司 | 流式传输平台流和架构 |
CN111061671A (zh) * | 2019-12-13 | 2020-04-24 | 上海灵动微电子股份有限公司 | 一种spi传输控制方法、发送设备和接收设备 |
WO2021120714A1 (zh) * | 2019-12-18 | 2021-06-24 | 成都海光微电子技术有限公司 | 数据交换方法、装置、处理器及计算机*** |
CN115327586A (zh) * | 2022-10-13 | 2022-11-11 | 北京凯芯微科技有限公司 | 一种导航卫星信号的处理装置和信号处理方法 |
CN115327586B (zh) * | 2022-10-13 | 2023-02-10 | 北京凯芯微科技有限公司 | 一种导航卫星信号的处理装置和信号处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103714026B (zh) | 2016-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103714026A (zh) | 一种支持原址数据交换的存储器访问方法及装置 | |
US8949550B2 (en) | Memory-centered communication apparatus in a coarse grained reconfigurable array | |
CN110347635B (zh) | 一种基于多层总线的异构多核微处理器 | |
US20040076044A1 (en) | Method and system for improving access latency of multiple bank devices | |
US6701405B1 (en) | DMA handshake protocol | |
KR100840140B1 (ko) | 메모리 허브 메모리 모듈들을 사용하여 데이터 전송들을조직화하는 시스템 및 방법 | |
JPS618785A (ja) | 記憶装置アクセス制御方式 | |
US20070136503A1 (en) | Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features | |
CN108279927A (zh) | 可调整指令优先级的多通道指令控制方法及***、控制器 | |
US8954644B2 (en) | Apparatus and method for controlling memory | |
CN103207846A (zh) | 内存控制器及控制方法 | |
CN106776458B (zh) | 基于fpga和hpi的dsp间的通信装置及通信方法 | |
CN104503948A (zh) | 支持多核网络处理架构的紧耦合自适应协处理*** | |
CN108701102A (zh) | 直接存储器访问控制器、数据读取方法和数据写入方法 | |
CN106980587A (zh) | 一种通用输入输出时序处理器及时序输入输出控制方法 | |
US6157971A (en) | Source-destination re-timed cooperative communication bus | |
EP0618537B1 (en) | System and method for interleaving status information with data transfers in a communications adapter | |
CN115328832B (zh) | 一种基于pcie dma的数据调度***与方法 | |
JP6094356B2 (ja) | 演算処理装置 | |
CN201218944Y (zh) | 双口ram实现闪存控制器缓存的结构 | |
CN206975631U (zh) | 一种通用输入输出时序处理器 | |
CN204496486U (zh) | 扩展功能单元及计算设备扩展*** | |
KR20040031155A (ko) | 어드레스 라인을 이용해 데이터 쓰기를 수행하는 메모리제어 장치 | |
JP6292324B2 (ja) | 演算処理装置 | |
KR102260820B1 (ko) | 대칭적 인터페이스 기반 인터럽트 신호 처리 장치 및 방법 |
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 |