CN103885908A - 一种基于外部设备可访问寄存器的数据传输系统及其方法 - Google Patents
一种基于外部设备可访问寄存器的数据传输系统及其方法 Download PDFInfo
- Publication number
- CN103885908A CN103885908A CN201410076490.3A CN201410076490A CN103885908A CN 103885908 A CN103885908 A CN 103885908A CN 201410076490 A CN201410076490 A CN 201410076490A CN 103885908 A CN103885908 A CN 103885908A
- Authority
- CN
- China
- Prior art keywords
- peripheral hardware
- accessible registers
- processor
- data
- external unit
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种基于外部设备可访问寄存器的数据传输系统,该系统包含:多个外设可访问寄存器和一外部总线装置,该外设可访问寄存器位于处理器核内部,外设通过外部总线装置直接访问外设可访问寄存器进行数据的修改和读取;本发明还公开了一种基于外部设备可访问寄存器的数据传输方法,该方法包括:外设向处理器传送数据步骤和处理器向外设传送数据步骤,外设通过外部总线装置直接访问位于处理器内部的外设可访问寄存器,与处理器进行数据的传输。
Description
技术领域
本发明涉及计算机体系结构,特别涉及一种基于外部设备可访问寄存器的数据传输系统及其方法。
背景技术
计算机系统中的处理器经常要和外部设备之间传输大量的数据,比如从磁盘上读写数据,通过网卡收发网络数据包,显卡接收需要输出给显示器的帧数据。此外还有功能各异的硬件加速卡,从处理器接收需要计算的任务,并将计算结果返回给处理器以减轻处理器的开销实现应用加速。
外部设备和处理器之间传输数据的主要途径是通过动态随机访问存储器(DRAM,Dynamic Random Access Memory)也就是内存进行中转,比如处理器将要发送的数据写入内存,然后通知外部设备从内存上的特定设备获取数据。外部设备从内存中取数据通常是通过一个直接内存访问(DMA,Direct MemoryAccess)控制器实现的,数据传输过程中无需处理器控制。随着对外部设备的工作效率要求越来越高,也有系统采用处理器内的高速缓存实现数据中转,具体实现方式是外部设备将数据写入内存后,由内存控制器主动发出预取请求,将刚传输完的数据取出存放到高速缓存。
随着半导体技术的不断发展和电子产品的更新换代,系统级芯片(SOC,system on a chip)得到了非常广泛的应用。在一个芯片内可以集成处理器、显示芯片、网络适配器以及定制加速模块等,这些模块在芯片内通过片上总线互联起来,传输数据时还可以通过片上存储(OCM,On Chip Memory)实现中转。此时数据传输完全在片内进行,克服了外部引脚物理电气特性的限制,显著提高了数据传输的位宽和频率。
处理器与外部模块之间传输数据时,除了提供内存、高速缓存、片上存储等保存数据的空间之外,还需要一定的同步机制保证双方互相通知数据传输的状态以及数据传输的地址范围,才能正确、安全的完成数据传输。下面以网卡接收数据包的场景为例介绍一下现有外部模块与处理器传输数据的方法。
图1为现有技术的内存中数据结构示意图,如图1所示,网卡驱动程序初始化的时候会在内存中构造一组接收描述符数据结构,每一个描述符中有一个指针指向一块物理地址连续的空间,可以存储一个网络数据报文,描述符中也有缓冲区的状态字段表示里面是否存储了网卡传输的数据。网卡驱动同时也要在初始化的时候将描述符的地址发给网卡。当网卡收到数据包了之后,会从内存中取出接收描述符,通过DMA将数据包写入描述符指定的地址,并更新缓冲区的状态字段标记其缓冲区已存储了一个数据包。之后网卡会发出一个中断信号,一个中断控制器收到中断信号之后会将中断源写入一个中断向量寄存器,之后处理器执行中断处理程序,根据中断向量寄存器的结果获知这是一个网卡接收数据中断,然后调用网卡驱动程序注册的对应网卡接收数据中断处理程序,产生一个软中断放入软中断队列。之后操作系统在合适的时候调用软中断队列中的软中断处理程序,取走接收描述符中的缓冲区,发给具体处理网络数据包的程序,之后申请一个新的缓冲区将地址填入接收描述符,同时修改描述符中记录的缓冲区的状态字段。
在上述的过程中,网卡和处理器是通过描述符来同步数据传输的状态,网卡将数据写入到内存后在描述符中标记该描述符指向的缓冲区中有数据,处理器将数据处理完成之后修改描述符中的状态字段表示该描述符指向的缓冲区是空闲的了。网卡修改了描述符后要通过中断机制通知处理器,处理器经过一系列复杂的中断处理之后找到网卡发过来的数据并取走。当大量传输数据时,如对于千兆网卡,每秒中最多可以发出超过100万个数据包。处理器上频繁执行中断处理程序的开销将非常大,甚至不能给处理数据的应用程序足够的处理器资源。如果采用关中断、按时间片定时轮询的方式,收到一批数据包再发出中断,这样减少了中断的次数,但是引入了较大的处理延迟。
如果不采用外设通知中断的方式,在发起DMA操作后由处理器上的程序监测外设的状态来判断数据传输是否完成,也就是直接在软件执行过程中访问外设上的状态信息,待数据传输完成后直接对数据进行处理。但因为处理器不能知道数据传输何时会完成,而反复查询外设上DMA控制器的时间开销又很大,处理器在这段时间基本上就无法完成其它任务了,所以只有在少数对数据处理实时性要求很高的场景下才会采用这种办法。
从上面的分析可以看出,由于外设传输数据的操作对于处理器来说是异步的过程,所以通常是在传输结束的时候通过发出中断信号通知处理器进行中断处理。尽管现在的操作系统已经针对中断服务程序做了非常多的优化,但是不可避免的上下文切换开销以及伴随的TLB、cache污染等问题都会影响应用的性能。随着技术的进步,外设传输数据的速度越快,单位时间内发生的中断次数就越多,需要在通知机制上做文章才能降低外设传输数据逇开销。
发明内容
本发明所要解决的技术问题在于提供一种基于外部设备可访问寄存器的数据传输系统及其方法,以克服现有技术中存在的外部模块与处理器核之间传输数据所需的开销大的问题。
为达上述目的,本发明提供了一种基于外部设备可访问寄存器的数据传输系统,所述系统包含:多个外设可访问寄存器和一外部总线装置,所述外设可访问寄存器位于处理器核内部,外设通过所述外部总线装置直接访问所述外设可访问寄存器进行数据的修改和读取。
上述基于外部设备可访问寄存器的数据传输系统,其特征在于,所述外设可访问寄存器包含:处理器可写外部模块可写寄存器、只读外设可访问寄存器和只写外设可访问寄存器。
上述基于外部设备可访问寄存器的数据传输系统,其特征在于,所述外设可访问寄存器的程序访问方式与用机器指令访问通用寄存器的方式相同。
上述基于外部设备可访问寄存器的数据传输系统,其特征在于,所述外部总线装置包括:旁路总线装置和/或片上总线装置,外设通过所述旁路总线装置和/或所述片上总线装置对外设可访问寄存器进行直接访问。
上述基于外部设备可访问寄存器的数据传输系统,其特征在于,所述旁路总线装置包含一位于IO控制器和处理器之间的新增总线,用于处理IO控制器读写外部设备可访问寄存器的旁路总线请求。
上述基于外部设备可访问寄存器的数据传输系统,其特征在于,所述片上总线装置包括:处理器核、缓存控制器、IO控制器和片上总线,在所述处理器核与所述缓存控制器之间具有一条基于所述片上总线的可直接访问外设可访问寄存器的数据通路。
上述基于外部设备可访问寄存器的数据传输系统,其特征在于,所述片上总线通过缓存一致性协议实现所述外设可访问寄存器装置。
上述基于外部设备可访问寄存器的数据传输系统,其特征在于,所述旁路总线请求包括:处理器核ID信息和所述外设可访问寄存器标示信息,所述旁路总线依据所述标示信息检查所述请求是否合法。
上述基于外部设备可访问寄存器的数据传输系统,其特征在于,所述片上总线将所述外设可访问寄存器与缓存块进行统一编址,并基于所述缓存一致性协议完成外设对所述外设可访问寄存器的读写操作。
上述基于外部设备可访问寄存器的数据传输系统,其特征在于,所述缓存控制器可将片上总线的请求转换为所述外设可访问寄存器的读写操作请求。
上述基于外部设备可访问寄存器的数据传输系统,其特征在于,所述IO控制器将所述外设可访问寄存器的读写请求转化为所述片上总线的请求,所述片上总线的请求的地址空间位于系统分配给所述外设可访问寄存器的地址空间内。
本发明还提供了一种基于外部设备可访问寄存器的数据传输方法,应用于如所述基于外部设备可访问寄存器的数据传输系统,所述传输系统包括多个外设可访问寄存器和一外部总线装置,其特征在于,所述方法包括:
外设向处理器传送数据步骤:外设将数据信息通过所述外部总线装置写入所述外设可访问寄存器,处理器读取所述外部设备可访问寄存器中的数据信息并获取外设发送的数据;
处理器向外设传送数据步骤:处理器在所述外设可访问寄存器中写入要传输的数据信息,外设通过所述外部总线装置读取所述外设可访问寄存器中数据信息并获取处理器发送的数据。
上述基于外部设备可访问寄存器的数据传输方法,其特征在于,所述外设向处理器传送数据步骤包括:
外设发送操作步骤:外部设备将数据传输到一共享空间,把数据在所述共享空间中的地址和长度通过所述外部总线装置写入所述外设可访问寄存器,并通过所述外部总线装置更新所述外设可访问寄存器;
处理器接收操作步骤:处理器在所述外设可访问寄存器中读取共享空间中的数据地址和长度,并判断数据接收完整后,进行数据处理。
上述基于外部设备可访问寄存器的数据传输方法,其特征在于,所述外设发送操作步骤还包括:
外设读取寄存器步骤:外设根据处理器发送的所述DMA操作请求来源,通过外部总线装置读取只写外设可访问寄存器;
外设传输数据步骤:外设向所述共享空间中拷贝数据;
外设更新寄存器步骤:外设通过所述外部总线装置在只读外设可访问寄存器中更新所述DMA请求的进度。
上述基于外部设备可访问寄存器的数据传输方法,其特征在于,所述处理器接收操作步骤还包括:
处理器请求步骤:用于所述处理器在所述外设可访问寄存器中填写直接内存访问DMA请求的起始目的地址和长度,并通知所述外设启动DMA操作;
处理器判断并读取数据步骤:处理器检查所述只读外部设备可访问寄存器,如果所述共享空间中已经收到足够多的新数据,则处理所述新数据,否则继续执行所述外设传输数据步骤。
上述基于外部设备可访问寄存器的数据传输方法,其特征在于,所述处理器向外设传送数据步骤还包括:
处理器发送操作步骤:处理器在所述外设可访问寄存器填写要传输的位于内存中的数据地址和长度;
外设接收操作步骤:外设通过所述外部总线装置读取所述外设可访问寄存器,从内存读取数据,并通过外部总线装置更新所述外设可访问寄存器。
上述基于外部设备可访问寄存器的数据传输方法,其特征在于,所述外设接收操作步骤还包括:
外设读取寄存器步骤:外设根据处理器发送的DMA请求来源,通过外部总线装置读取只写外设可访问寄存器;
外设读取数据步骤:外设从只写外部设备可访问寄存器中获取所述DMA请求的地址和长度,并从内存中读取数据;
外设更新寄存器步骤:外设通过所述外部总线装置在只读外设可访问寄存器中更新所述DMA请求的进度。
上述基于外部设备可访问寄存器的数据传输方法,其特征在于,所述处理器发送操作步骤还包括:
处理器请求步骤:用于处理器在所述外设可访问寄存器中填写直接内存访问DMA请求的起始目的地址和长度,并通知外设启动DMA操作;
处理器传输数据步骤:处理器中空闲内存空间写入需要发送的数据,并执行所述处理器请求步骤;
处理器检查步骤:处理器检查只读外部设备可访问寄存器,如果有足够内存空间,则执行所述处理器传输数据步骤,否则,执行所述外设更新寄存器步骤。
上述基于外部设备可访问寄存器的数据传输方法,其特征在于,所述外设读取寄存器步骤进一步包括:
旁路总线外设读取步骤:所述外设通过所述旁路总线读取所述外部设备可访问寄存器的最新值;和/或
片上总线外设读取步骤:所述外设通过所述片上总线读取所述外部设备可访问寄存器的最新值。
上述基于外部设备可访问寄存器的数据传输方法,其特征在于,所述外设更新寄存器步骤进一步包括:
旁路总线外设更新步骤:所述外设通过所述旁路总线更新所述外部设备可访问寄存器的最新值;和/或
片上总线外设更新步骤:所述外设通过所述片上总线更新所述外部设备可访问寄存器的最新值。
上述基于外部设备可访问寄存器的数据传输方法,其特征在于,所述片上总线外设读取步骤进一步包括:
外设读取IO控制器的处理步骤:所述外设向IO控制器发出读取所述外设可访问寄存器的读取请求,所述IO控制器在片上总线发出请求,并收到返回值后,将所述返回值发给所述外设;
外设读取缓存控制器的处理步骤:缓存控制器根据从所述片上总线接收到的请求的地址进行识别,如果所述地址为所述外设可访问寄存器占用的空间,并且如果所述外设可访问寄存器属于本处理器核,则所述缓存控制器读取所述外设可访问寄存器,并将返回值放入所述片上总线。
上述基于外部设备可访问寄存器的数据传输方法,其特征在于,所述片上总线外设更新步骤进一步包括:
外设更新IO控制器的处理步骤:外设向IO控制器发出更新所述外设可访问寄存器的更新请求,所述IO控制器在片上总线发出请求,并收到响应后,将更新数据置于所述片上总线;
外设更新缓存控制器的处理步骤:缓存控制器从所述片上总线收到片上总线的请求,根据所述请求的地址进行识别,如果所述地址为本处理器核的外设可访问寄存器地址,所述缓存控制器修改所述外设可访问寄存器的地址空间状态,将收到的所述片上总线请求的返回值发给目标外设可访问寄存器,并再次修改所述地址空间状态。
与现有技术相比,本发明的有益效果在于:
1、外设访问处理器的处理延迟减少,并节省了中断处理操作的开销;
2、根据现有技术中处理器具有的分支预测功能,检查外设可访问寄存器的指令对于整个应用的性能影响很少;
3、采用本发明技术方案,SOC产品中片上加速部件和处理器可通过本发明方式实现数据高效传输,同时,在片上的PCI-E(PCI express)控制器中集成本发明技术方案,各种外设扩展卡,包括网卡,显卡,应用加速卡等均可以通过更新驱动方式来支持外部设备可访问寄存器,以提高整个系统传输数据的效率。
附图说明
图1为现有技术的内存中数据结构示意图;
图2为本发明基于外部设备可访问寄存器的数据传输系统结构示意图;
图3为旁路总线装置系统示意图;
图4为片上总线装置系统示意图;
图5为本发明基于外部设备可访问寄存器的数据传输方法流程示意图;
图6A~图6B为本发明外设向处理器传送数据步骤示意图;
图7A~图7B为本发明处理器向外设传送数据步骤示意图;
图8A~图8B为本发明外设读取寄存器步骤示意图;
图8C~图8D为本发明外设更新寄存器步骤示意图;
图9A~图9B为本发明片上总线外设读取步骤示意图;
图9C~图9D为本发明旁路总线外设更新步骤示意图;
图10为本发明一实施例外设向处理器传送数据步骤示意图;
图11为本发明一实施例外设向处理器传输数据步骤示意图;
图12为本发明一实施例外设读取IO控制器的处理步骤示意图;
图13为本发明一实施例外设读取缓存控制器处理步骤示意图;
图14为本发明一实施例外设更新IO控制器的处理步骤示意图;
图15为本发明一实施例外设更新缓存控制器的处理步骤示意图。
S1~S2、S11~S13、S21~S23、S111~S113、S121~S122、S211~S213、S221~S223:本发明各实施例的施行步骤
具体实施方式
本发明提出了一种可以由外部模块直接访问处理器核内部的寄存器和访问方法。当外部模块需要同步数据传输操作的状态时,利用片内总线上的协议直接修改处理器核内部的某些寄存器,软件可以读取处理器核内部的寄存器来判断数据传输操作是否已经完成。
本发明的技术关键点及相应的技术效果:
1.一组外设可访问寄存器,所述的外设可访问寄存器位于处理器核内部,可被系统的外部设备直接修改读取,无需在处理器上运行额外的机器指令;
2.该外设可访问寄存器的程序访问方式与用机器指令访问通用寄存器的方式相同;
3.所述的外部设备可访问寄存器分三类,处理器可写外部模块可写的寄存器,即只写外设可访问寄存器;处理器只读外部模块可写的寄存器,即只读外设可访问寄存器;外部模块只读处理器可写的寄存器;
4.一种基于新增旁路总线的旁路总线装置,所述的旁路总线是一条IO控制器与处理器之间的特殊总线,专门用于处理IO控制器读写外部设备可访问寄存器的请求;
5.所述的旁路总线上的请求,包括处理器核ID信息以及外部设备可访问寄存器标示信息,旁路总线会根据标示信息检查请求类型是否合法。
6.一种基于缓存一致性协议的片上总线装置,包括处理器核、缓存控制器、IO控制器、支持外设可访问寄存器片上总线。
7.所述的处理器核与缓存控制器之间,有一条读写外设可访问寄存器的数据通路。
8.所述的支持外设可访问寄存器的片上总线,将外设可访问寄存器与缓存块统一编址,基于缓存一致性协议完成外设读写外设可访问寄存器的操作。
9.所述的缓存控制器可将片上总线的请求转化成读写外设可访问寄存器的请求,所述片上总线的请求要求地址空间位于系统给外部设备可访问寄存器分配的空间,片上总线请求的内容遵循现有标准。
10.所述的IO控制器可将外设读写外设可访问寄存器的请求转化成片上总线的请求,所述片上总线的请求要求地址空间位于系统给外设可访问寄存器分配的空间。
11.一种基于外部设备可访问寄存器的数据传输方法,包括如下步骤:处理器在外设可访问寄存器填写要传输的数据地址和长度;外部设备读取外设可访问寄存器;外部设备启动数据传输操作;外部设备将数据传输到共享空间,把数据在共享空间中的地址和长度写入外设可访问寄存器;处理器读取外设可访问寄存器,从共享空间中获得外设传来的数据。
基于以上本发明的技术关键点,下面给出本发明的具体实施方式,结合图示对本发明做出了详细描述。
图2为本发明基于外部设备可访问寄存器的数据传输系统结构示意图,如图2所示,本发明提供的一种基于外部设备可访问寄存器的数据传输系统,该系统包含:多个外设可访问寄存器1和一外部总线装置2,外设可访问寄存器1位于处理器核内部,外设通过外部总线装置2直接访问外设可访问寄存器1进行数据的修改和读取。
其中,外设可访问寄存器1包含:处理器可写外部模块可写寄存器、只读外设可访问寄存器和只写外设可访问寄存器。
外设可访问寄存器的程序访问方式与用机器指令访问通用寄存器的方式相同。
本发明实现的技术方案为了减少处理器与外设之间传输数据的开销,在处理器内部增加了一种可以被外部设备直接访问的寄存器。我们称这组寄存器为外设可访问寄存器(Peripheral Accessible Register,简称为PAR寄存器)。外设可访问寄存器既可以被机器指令当作普通的寄存器访问,也可以通过处理器的外部总线被系统的外部设备访问。
由于外设可访问寄存器可以被处理器和外设两者读写,根据读写权限不同,可以将外设可访问寄存器分成三类:处理器可写外部模块可写的寄存器,处理器只读外部模块可写的寄存器,外部模块只读处理器可写的寄存器。考虑到外部模块通常与处理器工作在不同时钟域且频率会慢很多。一个外设可访问寄存器如果既可以被处理器修改又可以被外部设备修改,那么在数据传输的过程中有可能会带来一致性的问题。所以本发明更侧重于后两类寄存器:处理器只读外部设备可写,以处理器的角度,之后简称这类寄存器只读外设可访问寄存器;外部设备只读处理器可写,以处理器的角度,之后称这类寄存器为只写外设可访问寄存器。每一个访问外设可访问寄存器的请求都要在片上总线上进行读写合法性检查。对于只读外设可访问寄存器,主要由外设用于填写刚完成的DMA请求的目的地址,这样处理器检查外设传输了多少数据时,只需读取只读外设可访问寄存器的值即可。由于访问只读外设可访问寄存器的开销很低,所以可以将处理器查询外设状态的操作插入到正常的应用处理中进行。这样即不会引入太多的开销,也能确保收到数据后的及时响应。只写外设可访问寄存器则可用于处理器通知外部设备一个新DMA请求的目的地址,处理器通知外部设备可用的缓冲区信息,外部设备读取后发起DMA操作。根据程序的需要,两类外设可访问寄存器在一个处理器核内部都会设置多个,外部设备或软件访问时可以通过外设可访问寄存器ID来指明具体要访问的寄存器。
当一个处理核需要与多个外部设备传输数据时,不同外设会共享使用一个处理核内部的外设可访问寄存器。共享多个外设可访问寄存器,但是只需要一个外部总线装置即可。为了避免冲突,我们要求一段时间只有一个外设可以通过外设可访问寄存器与处理器核传输数据。实现办法是使用一个只写外设可访问寄存器,记录当前使用该处理器核中外设可访问寄存器的外设标号,为0的话表示空闲,外设可以在总线上发出请求申请只写外设可访问寄存器的使用权,在之后读取该寄存器以确保申请成功。当一个处理核上运行的多个进程需要与外设传输数据时,为了避免进程间对外设可访问寄存器的污染,需要在进程切换的时候终止正在进行的外设DMA操作,并将外设可访问寄存器的内容保存到进程上下文中。多个处理核因为有各自私有的外设可访问寄存器,所以可以同时发起与一个或多个外设之间的数据传输操作。
其中,外部总线装置2包括:旁路总线装置3和/或片上总线装置4,外设通过旁路总线装置3和/或片上总线装置4对外设可访问寄存器1进行直接访问。
外部设备要访问核内的外设可访问寄存器,既可以通过新增数据通路,也可以基于现有的片上总线。前者只需在处理器核上增加新的旁路总线,专门用于外部模块读写外设可访问寄存器。这种方式需要较多的布线资源,但访问操作比较方便,处理核以及IO控制器内部需要做的改动不大。后者可以在基于现有片上总线的基础上,修改cache控制器的逻辑,监测总线并将外部设备访问外设可访问寄存器的请求转发至处理核内部。这样不需要额外的连线资源,但是需要在现有总线协议上新增访问外设可访问寄存器的内容,对于cache控制器和IO控制器的逻辑修改较多。具体的实现方式是将外设可访问寄存器视作特殊的cache块,IO控制器视作特殊的处理器核,IO控制器访问外设可访问寄存器既是向目标寄存器所在的处理器核发出MESI协议请求,cache控制器解析MESI协议请求,完成外设可访问寄存器的读写操作。
旁路总线装置3包含一位于IO控制器和处理器之间的新增总线,用于处理IO控制器读写外部设备可访问寄存器的旁路总线请求。
图3为旁路总线装置系统示意图,如图3所示,处理器核与外设控制器之间单独设置了一条旁路总线。外设通过旁路总线获取只写外设可访问寄存器的最新值,或者更新只读外设可访问寄存器的最新值。除上述两种操作之外,旁路总线上没有其他类型的请求,总线上的请求可以显示标明处理核ID和外设可访问寄存器ID,收到请求的处理核输出或更新外设可访问寄存器的值即可。
图4为片上总线装置系统示意图,如图4所示,每一个处理器核内部增加了cache控制器与外设可访问寄存器的数据通路。所述的支持外设可访问寄存器的片上总线是在现有cache一致性协议基础上增加了读写外设可访问寄存器的新协议。同时在cache控制器和IO控制器上增加了处理新协议所需的功能电路。
片上总线装置包括:处理器核、缓存控制器、IO控制器和片上总线,在所述处理器核与所述缓存控制器之间具有一条基于所述片上总线的可直接访问外设可访问寄存器的数据通路。
片上总线通过缓存一致性协议实现外设可访问寄存器装置。
旁路总线请求包括:处理器核ID信息和外设可访问寄存器标示信息,所述旁路总线依据标示信息检查所述请求是否合法。
片上总线将外设可访问寄存器与缓存块进行统一编址,并基于缓存一致性协议完成外设对外设可访问寄存器的读写操作。
缓存控制器可将片上总线的请求转换为外设可访问寄存器的读写操作请求。
IO控制器将外设可访问寄存器的读写请求转化为片上总线的请求,片上总线的请求的地址空间位于系统分配给外设可访问寄存器的地址空间内。
综上所述,本发明的外设可访问寄存器处理器内部,使外部模块发出更新外设可访问寄存器的请求和通知处理器数据传输的最新状态,只需1个cycle检查寄存器的值即可快速判断出数据传输是否完成,判断从外部模块发出了多少数据,储存于内存中的具体位置,这样减少了外设访问处理器的处理延迟,并节省了中断处理操作的开销,降低了整个系统应用的性能。
本发明还提供一种基于外部设备可访问寄存器的数据传输方法,图5为本发明基于外部设备可访问寄存器的数据传输方法流程示意图,如图5所示,该方法包括:
外设向处理器传送数据步骤S1:外设将数据信息通过外部总线装置写入外设可访问寄存器,处理器读取外部设备可访问寄存器中的数据信息并获取外设发送的数据;
处理器向外设传送数据步骤S2:处理器在外设可访问寄存器中写入要传输的数据信息,外设通过外部总线装置读取外设可访问寄存器中数据信息并获取处理器发送的数据。
其中,外设向处理器传送数据步骤S1包括:
外设发送操作步骤S11:外部设备将数据传输到一共享空间,把数据在共享空间中的地址和长度通过所述外部总线装置写入外设可访问寄存器,并通过外部总线装置更新外设可访问寄存器;
处理器接收操作步骤S12:处理器在外设可访问寄存器中读取共享空间中的数据地址和长度,并判断数据接收完整后,进行数据处理。
图6A为本发明外设发送操作步骤示意图,如图6A所示,外设发送操作步骤S11还包括:
外设读取寄存器步骤S111:外设根据处理器发送的DMA操作请求来源,通过外部总线装置读取只写外设可访问寄存器;
外设传输数据步骤S112:外设向共享空间中拷贝数据;
外设更新寄存器步骤S113:外设通过外部总线装置在只读外设可访问寄存器中更新DMA请求的进度。
图6B为本发明处理器接收操作步骤示意图,如图6B所示,其中,处理器接收操作步骤S12还包括:
处理器请求步骤S121:用于处理器在外设可访问寄存器中填写直接内存访问DMA请求的起始目的地址和长度,并通知外设启动DMA操作;
处理器判断并读取数据步骤S122:处理器检查只读外部设备可访问寄存器,如果共享空间中已经收到足够多的新数据,则处理新数据,否则继续执行外设传输数据步骤。
其中,处理器向外设传送数据步骤S2还包括:
处理器发送操作步骤S21:处理器在外设可访问寄存器填写要传输的位于内存中的数据地址和长度;
外设接收操作步骤S22:外设通过外部总线装置读取外设可访问寄存器,从内存读取数据,并通过外部总线装置更新外设可访问寄存器。
图7A为本发明处理器发送操作步骤示意图,如图7A所示,其中,处理器发送操作步骤S21还包括:
处理器请求步骤S211:用于处理器在外设可访问寄存器中填写直接内存访问DMA请求的起始目的地址和长度,并通知外设启动DMA操作;
处理器传输数据步骤S212:处理器中空闲内存空间填入需要发送的数据,并执行处理器请求步骤;
处理器检查步骤S213:处理器检查只读外部设备可访问寄存器,如果有足够内存空间,则执行处理器传输数据步骤,否则,执行外设更新寄存器步骤。
图7B为本发明外设接收操作步骤示意图,如图7B所示,外设接收操作步骤S22还包括:
外设读取寄存器步骤S221:外设根据处理器发送的DMA请求来源,通过外部总线装置读取只写外设可访问寄存器;
外设读取数据步骤S222:外设从只写外部设备可访问寄存器中获取DMA请求的地址和长度,并从内存中读取数据;
外设更新寄存器步骤S223:外设通过外部总线装置在只读外设可访问寄存器中更新所述DMA请求的进度。
图8A为本发明外设读取寄存器步骤示意图,如图8A所示,其中,外设读取寄存器步骤S111进一步包括:
旁路总线外设读取步骤S1111:外设通过旁路总线读取外部设备可访问寄存器的最新值;和/或
片上总线外设读取步骤S1112:外设通过片上总线读取外部设备可访问寄存器的最新值。
图8B为本发明外设读取寄存器步骤示意图,如图8B所示,其中,外设读取寄存器步骤S221都进一步包括:
旁路总线外设读取步骤S2211:外设通过旁路总线读取外部设备可访问寄存器的最新值;和/或
片上总线外设读取步骤S2212:外设通过片上总线读取外部设备可访问寄存器的最新值。
图8C为本发明外设更新寄存器步骤示意图,如图8C所示,外设更新寄存器步骤S113进一步包括:
旁路总线外设更新步骤S1131:外设通过旁路总线更新外部设备可访问寄存器的最新值;和/或
片上总线外设更新步骤S1132:外设通过片上总线更新外部设备可访问寄存器的最新值。
图8D为本发明外设更新寄存器步骤示意图,如图8D所示,外设更新寄存器步骤S223进一步包括:
旁路总线外设更新步骤S2231:外设通过旁路总线更新外部设备可访问寄存器的最新值;和/或
片上总线外设更新步骤S2232:外设通过片上总线更新外部设备可访问寄存器的最新值。
图9A为本发明片上总线外设读取寄存器步骤示意图,如图9A所示,片上总线外设读取步骤S1112进一步包括:
外设读取的IO控制器处理步骤S11121:外设向IO控制器发出读取外设可访问寄存器的读取请求,IO控制器在片上总线发出请求,并收到返回值后,将返回值发给外设;
外设读取缓存控制器的处理步骤S11122:缓存控制器根据从片上总线接收到的请求的地址进行识别,如果地址为外设可访问寄存器占用的空间,并且如果外设可访问寄存器属于本处理器核,则缓存控制器读取外设可访问寄存器,并将返回值放入片上总线。
图9B为本发明片上总线外设读取寄存器步骤示意图,如图9B所示,片上总线外设读取步骤S2212进一步包括:
外设读取IO控制器的处理步骤S22121:外设向IO控制器发出读取外设可访问寄存器的读取请求,IO控制器在片上总线发出请求,并收到返回值后,将返回值发给外设;
外设读取缓存控制器的处理步骤S22122:缓存控制器根据从片上总线接收到的请求的地址进行识别,如果地址为外设可访问寄存器占用的空间,并且如果外设可访问寄存器属于本处理器核,则缓存控制器读取外设可访问寄存器,并将返回值放入片上总线。
图9C为本发明片上总线外设更新寄存器步骤示意图,如图9C所示,片上总线外设更新步骤S1132进一步包括:
外设更新IO控制器的处理步骤S11321:外设向IO控制器发出更新外设可访问寄存器的更新请求,IO控制器在片上总线发出请求,并收到响应后,将更新数据置于片上总线;
外设更新缓存控制器的处理步骤S11322:缓存控制器从片上总线收到片上总线的请求,根据请求的地址进行识别,如果地址为本处理器核的外设可访问寄存器地址,缓存控制器修改外设可访问寄存器的地址空间状态,将收到的所述片上总线请求的返回值发给目标外设可访问寄存器,并再次修改地址空间状态。
图9D为本发明片上总线外设更新寄存器步骤示意图,如图9D所示,片上总线外设更新步骤S2232进一步包括:
外设更新IO控制器的处理步骤S22321:外设向IO控制器发出更新外设可访问寄存器的更新请求,IO控制器在片上总线发出请求,并收到响应后,将更新数据置于片上总线;
外设更新缓存控制器的处理步骤S22322:缓存控制器从片上总线收到片上总线的请求,根据请求的地址进行识别,如果地址为本处理器核的外设可访问寄存器地址,缓存控制器修改外设可访问寄存器的地址空间状态,将收到的所述片上总线请求的返回值发给目标外设可访问寄存器,并再次修改地址空间状态。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种基于外部设备可访问寄存器实现的数据传输方法和装置进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图10为本发明一实施例外设向处理器传送数据步骤示意图,如图10所示,包括下列步骤:
步骤210,处理器在只写外设可访问寄存器中填写DMA请求的起始目的地址和长度信息;
步骤220,处理器通过IO总线发出命令,通知外部设备启动DMA操作;
步骤230,外设根据请求的来源读取处理器中的只写外设可访问寄存器;
步骤240,外设拷贝数据,并在只读外设可访问寄存器中更新DMA请求的进度;
步骤250,处理器检查只读外设可访问寄存器,是否收到了足够多的新数据。若是,则执行步骤260,否则执行步骤240;
步骤260,处理器处理最新收到的数据;
步骤270,检查DMA操作是否结束,若是,则整个传输过程结束,否则执行步骤250。
下面以一段程序为例说明当两个大数组向量A、B存储在外设上,处理器利用外设可访问寄存器实现读取两个向量,进行处理,并写回结果的过程。
//设置PAR的目标值
MOV OCM_ADDR_A+LEN(A),%TARGET_PAR
//启动DMA操作,取A至OCM
DMA_LOAD OCM_ADDR_A,[A]
.L1:
//执行与A、B无关的代码
…
//比较目标寄存器,外部模块更新%LW_PAR
CMP%LW_PAR,%TARGET_PAR
//消息读未完成,继续执行无关代码
JNE.L1
//检查刚完成的消息读是否读的是B
CMP OCM_ADDR_B+LEN(B),%TARGET_PAR
//B已经读完,跳转去进行计算
JE.L2
//设置新的PAR目标值
MOV OCM_ADDR_B+LEN(B),%TARGET_PAR
//启动DMA操作,取B至OCM
DMA_LOAD OCM_ADDR_B,[B]
//继续执行与A、B无关的代码
JMP.L1
.L2:
//计算C[i]=A[i]+B[i]
ADD OCM_ADDR_C,OCM_ADDR_A,OCM_ADDR_B
//写回结果,通过DMA操作将OCM中的结果传送至外设
DMA_STORE OCM_ADDR_C,[C]
//计算结束
JMP.L1
图11为本发明一实施例外设向处理器传输数据步骤示意图,处理器将数据发送给外设进行处理的过程,如图11所示,包括下列步骤:
步骤310,处理器在只写外设可访问寄存器中填写DMA请求的起始目的地址和长度信息;
步骤320,处理器通过IO总线发出命令,通知外围设备启动DMA操作;
步骤330,外设根据请求的来源读取处理器中的只写外设可访问寄存器;
步骤340,外设从只写外设可访问寄存器取得DMA请求的地址和长度。从内存读取数据,并进行各种处理;
步骤350,外设在只读外设可访问寄存器中更新进度,通知CPU已经取走了多少数据;
步骤360,处理器检查只读外设可访问寄存器,是否有了足够多的空闲空间。若是,则执行步骤370,否则执行步骤350;
步骤370,处理器在空闲内存空间中填入新的需要发给外设的数据,并在只写外设可访问寄存器中填写DMA请求的起始目的地址和长度信息;
步骤380,处理器检查是否发送了所有数据,若是则整个传输过程结束,否则执行步骤360。
图12为本发明一实施例外设读取IO控制器的处理步骤示意图,如图12所示,该步骤基于支持外设可访问寄存器的片上总线,外部设备读取只写外设可访问寄存器时IO控制器的处理过程,包括下列步骤:
步骤610,外部设备向IO控制器发出读取外设可访问寄存器的请求;
步骤620,IO控制器在片上总线的请求总线上发出Get请求,等同于cache控制器的数据块发生I(Invalid)->S(Share)状态转换时发出的请求;
步骤630,IO控制器收到片上总线的数据总线上的返回值,将其发给提出请求的外部设备。整个操作过程结束。
图13为本发明一实施例外设读取缓存控制器处理步骤示意图,如图13所示,该步骤基于支持外设可访问寄存器的片上总线,外部设备读取只写外设可访问寄存器时cache控制器的处理过程,包括下列步骤:
步骤710,处理核将只写外设可访问寄存器占用的空间在cache控制器中登记,cache控制器标记这段空间的状态恒为E(Exclusive);
步骤720,Cache控制器从片上总线的请求总线收到请求,根据请求的地址进行识别;
步骤730,检查是否属于外设可访问寄存器占用的空间,如果是,则执行步骤640,否则执行步骤660;
步骤740,检查是否属于本处理核上的外设可访问寄存器,如果是,则执行步骤750,否则整个操作过程结束;
步骤750,Cache控制器从处理核中读取需要的外设可访问寄存器,作为请求的返回值放到片上总线的数据总线上。整个操作过程结束;
步骤760,收到的请求属于访问主存储器的请求,按照传统方式处理。
图14为本发明一实施例外设更新IO控制器的处理步骤示意图,如图14所示,该步骤基于支持外设可访问寄存器的片上总线,外部设备更新只读外设可访问寄存器时IO控制器的处理过程,包括下列步骤:
步骤810,外部设备向IO控制器发出更新外设可访问寄存器的请求;
步骤820,IO控制器在片上总线的请求总线上发出目的处理器核的伪get请求,等同于目的处理器核的cache控制器的数据块发生I->S状态转换时发出的请求;
步骤830,IO控制器在片上总线的请求总线上发出Put请求,等同于cache控制器的数据块发生E->I状态转换时发出的请求;
步骤840,IO控制器收到片上总线的请求总线的响应后,将要更新的数据放到片上总线的数据总线上;
步骤850,IO控制器通知外部设备更新操作完成。
图15为本发明一实施例外设更新缓存控制器的处理步骤示意图,如图15所示,该步骤基于支持外设可访问寄存器的片上总线,外部设备更新只读外设可访问寄存器时cache控制器的处理过程,包括下列步骤:
步骤910,处理核将只读外设可访问寄存器占用的空间在cache控制器中登记,cache控制器标记这段空间的状态为S(Share);
步骤920,Cache控制器从片上总线的请求总线收到伪Get请求,根据请求的地址进行识别;
步骤930,检查是否属于本处理核上的外设可访问寄存器,如果是,则执行步骤940,否则整个操作过程结束;
步骤940,Cache控制器将目标寄存器占用的地址空间的状态设为发生I->S状态转换且尚未收到请求数据时的中间状态;
步骤950,Cache控制器收到片上总线的数据总线上的返回值,将其发给目标外设可访问寄存器,并修改对应空间的状态为S。整个操作过程结束。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (22)
1.一种基于外部设备可访问寄存器的数据传输系统,其特征在于,所述系统包含:多个外设可访问寄存器和一外部总线装置,所述外设可访问寄存器位于处理器核内部,外设通过所述外部总线装置直接访问所述外设可访问寄存器进行数据的修改和读取。
2.根据权利要求1所述基于外部设备可访问寄存器的数据传输系统,其特征在于,所述外设可访问寄存器包含:处理器可写外部模块可写寄存器、只读外设可访问寄存器和只写外设可访问寄存器。
3.根据权利要求1所述基于外部设备可访问寄存器的数据传输系统,其特征在于,所述外设可访问寄存器的程序访问方式与用机器指令访问通用寄存器的方式相同。
4.根据权利要求1所述基于外部设备可访问寄存器的数据传输系统,其特征在于,所述外部总线装置包括:旁路总线装置和/或片上总线装置,外设通过所述旁路总线装置和/或所述片上总线装置对外设可访问寄存器进行直接访问。
5.根据权利要求2所述基于外部设备可访问寄存器的数据传输系统,其特征在于,所述旁路总线装置包含一位于IO控制器和处理器之间的新增总线,用于处理IO控制器读写外部设备可访问寄存器的旁路总线请求。
6.根据权利要求2所述基于外部设备可访问寄存器的数据传输系统,其特征在于,所述片上总线装置包括:处理器核、缓存控制器、IO控制器和片上总线,在所述处理器核与所述缓存控制器之间具有一条基于所述片上总线的可直接访问外设可访问寄存器的数据通路。
7.根据权利要求5所述基于外部设备可访问寄存器的数据传输系统,其特征在于,所述片上总线通过缓存一致性协议实现所述外设可访问寄存器装置。
8.根据权利要求4所述基于外部设备可访问寄存器的数据传输系统,其特征在于,所述旁路总线请求包括:处理器核ID信息和所述外设可访问寄存器标示信息,所述旁路总线依据所述标示信息检查所述请求是否合法。
9.根据权利要求5所述基于外部设备可访问寄存器的数据传输系统,其特征在于,所述片上总线将所述外设可访问寄存器与缓存块进行统一编址,并基于所述缓存一致性协议完成外设对所述外设可访问寄存器的读写操作。
10.根据权利要求6所述基于外部设备可访问寄存器的数据传输系统,其特征在于,所述缓存控制器可将片上总线的请求转换为所述外设可访问寄存器的读写操作请求。
11.根据权利要求6或10所述基于外部设备可访问寄存器的数据传输系统,其特征在于,所述IO控制器将所述外设可访问寄存器的读写请求转化为所述片上总线的请求,所述片上总线的请求的地址空间位于系统分配给所述外设可访问寄存器的地址空间内。
12.一种基于外部设备可访问寄存器的数据传输方法,应用于如权利要求1-11中任一项所述的所述基于外部设备可访问寄存器的数据传输系统,所述传输系统包括多个外部设备可访问寄存器和一外部总线装置,其特征在于,所述方法包括:
外设向处理器传送数据步骤:外设将数据信息通过所述外部总线装置写入所述外设可访问寄存器,处理器读取所述外部设备可访问寄存器中的数据信息并获取外设发送的数据;
处理器向外设传送数据步骤:处理器在所述外设可访问寄存器中写入要传输的数据信息,外设通过所述外部总线装置读取所述外设可访问寄存器中数据信息并获取处理器发送的数据。
13.根据权利要求12所述的基于外部设备可访问寄存器的数据传输方法,其特征在于,所述外设向处理器传送数据步骤包括:
外设发送操作步骤:外部设备将数据传输到一共享空间,把数据在所述共享空间中的地址和长度通过所述外部总线装置写入所述外设可访问寄存器,并通过所述外部总线装置更新所述外设可访问寄存器;
处理器接收操作步骤:处理器在所述外设可访问寄存器中读取共享空间中的数据地址和长度,并判断数据接收完整后,进行数据处理。
14.根据权利要求13所述的基于外部设备可访问寄存器的数据传输方法,其特征在于,所述外设发送操作步骤还包括:
外设读取寄存器步骤:外设根据处理器发送的所述DMA操作请求来源,通过外部总线装置读取只写外设可访问寄存器;
外设传输数据步骤:外设向所述共享空间中拷贝数据;
外设更新寄存器步骤:外设通过所述外部总线装置在只读外设可访问寄存器中更新所述DMA请求的进度。
15.根据权利要求13所述的基于外部设备可访问寄存器的数据传输方法,其特征在于,所述处理器接收操作步骤还包括:
处理器请求步骤:用于所述处理器在所述外设可访问寄存器中填写直接内存访问DMA请求的起始目的地址和长度,并通知所述外设启动DMA操作;
处理器判断并读取数据步骤:处理器检查所述只读外部设备可访问寄存器,如果所述共享空间中已经收到足够多的新数据,则处理所述新数据,否则继续执行所述外设传输数据步骤。
16.根据权利要求12所述的基于外部设备可访问寄存器的数据传输方法,其特征在于,所述处理器向外设传送数据步骤还包括:
处理器发送操作步骤:处理器在所述外设可访问寄存器填写要传输的位于内存中的数据地址和长度;
外设接收操作步骤:外设通过所述外部总线装置读取所述外设可访问寄存器,从内存读取数据,并通过外部总线装置更新所述外设可访问寄存器。
17.根据权利要求16所述的基于外部设备可访问寄存器的数据传输方法,其特征在于,所述外设接收操作步骤还包括:
外设读取寄存器步骤:外设根据处理器发送的DMA请求来源,通过外部总线装置读取只写外设可访问寄存器;
外设读取数据步骤:外设从只写外部设备可访问寄存器中获取所述DMA请求的地址和长度,并从内存中读取数据;
外设更新寄存器步骤:外设通过所述外部总线装置在只读外设可访问寄存器中更新所述DMA请求的进度。
18.根据权利要求16所述的基于外部设备可访问寄存器的数据传输方法,其特征在于,所述处理器发送操作步骤还包括:
处理器请求步骤:用于处理器在所述外设可访问寄存器中填写直接内存访问DMA请求的起始目的地址和长度,并通知外设启动DMA操作;
处理器传输数据步骤:处理器中空闲内存空间写入需要发送的数据,并执行所述处理器请求步骤;
处理器检查步骤:处理器检查只读外部设备可访问寄存器,如果有足够内存空间,则执行所述处理器传输数据步骤,否则,执行所述外设更新寄存器步骤。
19.根据权利要求14或17所述基于外部设备可访问寄存器的数据传输方法,其特征在于,所述外设读取寄存器步骤进一步包括:
旁路总线外设读取步骤:所述外设通过所述旁路总线读取所述外部设备可访问寄存器的最新值;和/或
片上总线外设读取步骤:所述外设通过所述片上总线读取所述外部设备可访问寄存器的最新值。
20.根据权利要求14或17所述基于外部设备可访问寄存器的数据传输方法,其特征在于,所述外设更新寄存器步骤进一步包括:
旁路总线外设更新步骤:所述外设通过所述旁路总线更新所述外部设备可访问寄存器的最新值;和/或
片上总线外设更新步骤:所述外设通过所述片上总线更新所述外部设备可访问寄存器的最新值。
21.根据权利要求19所述基于外部设备可访问寄存器的数据传输方法,其特征在于,所述片上总线外设读取步骤进一步包括:
外设读取IO控制器的处理步骤:所述外设向IO控制器发出读取所述外设可访问寄存器的读取请求,所述IO控制器在片上总线发出请求,并收到返回值后,将所述返回值发给所述外设;
外设读取缓存控制器的处理步骤:缓存控制器根据从所述片上总线接收到的请求的地址进行识别,如果所述地址为所述外设可访问寄存器占用的空间,并且如果所述外设可访问寄存器属于本处理器核,则所述缓存控制器读取所述外设可访问寄存器,并将返回值放入所述片上总线。
22.根据权利要求20所述基于外部设备可访问寄存器的数据传输方法,其特征在于,所述片上总线外设更新步骤进一步包括:
外设更新IO控制器的处理步骤:外设向IO控制器发出更新所述外设可访问寄存器的更新请求,所述IO控制器在片上总线发出请求,并收到响应后,将更新数据置于所述片上总线;
外设更新缓存控制器的处理步骤:缓存控制器从所述片上总线收到片上总线的请求,根据所述请求的地址进行识别,如果所述地址为本处理器核的外设可访问寄存器地址,所述缓存控制器修改所述外设可访问寄存器的地址空间状态,将收到的所述片上总线请求的返回值发给目标外设可访问寄存器,并再次修改所述地址空间状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410076490.3A CN103885908B (zh) | 2014-03-04 | 2014-03-04 | 一种基于外部设备可访问寄存器的数据传输系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410076490.3A CN103885908B (zh) | 2014-03-04 | 2014-03-04 | 一种基于外部设备可访问寄存器的数据传输系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103885908A true CN103885908A (zh) | 2014-06-25 |
CN103885908B CN103885908B (zh) | 2017-01-25 |
Family
ID=50954808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410076490.3A Active CN103885908B (zh) | 2014-03-04 | 2014-03-04 | 一种基于外部设备可访问寄存器的数据传输系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103885908B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104850503A (zh) * | 2015-05-06 | 2015-08-19 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种通用地址空间管理方法及其结构 |
CN106447599A (zh) * | 2015-08-11 | 2017-02-22 | 瑞萨电子株式会社 | 半导体装置 |
CN107463829A (zh) * | 2017-09-27 | 2017-12-12 | 山东渔翁信息技术股份有限公司 | 一种密码卡中dma请求的处理方法、系统及相关装置 |
CN107526695A (zh) * | 2016-06-20 | 2017-12-29 | 北京忆芯科技有限公司 | NVMe配置空间实现方法与装置 |
CN107980127A (zh) * | 2015-06-22 | 2018-05-01 | 高通股份有限公司 | 对快速外围组件互连(PCI)(PCIe)事务层的一致性驱动增强 |
CN111813730A (zh) * | 2019-04-12 | 2020-10-23 | 意法半导体(鲁塞)公司 | 串行总线上的数据编码 |
WO2023124940A1 (zh) * | 2021-12-29 | 2023-07-06 | 合肥市芯海电子科技有限公司 | 一种直接存储器访问的嵌入式控制电路、芯片和电子设备 |
CN116737602A (zh) * | 2023-08-11 | 2023-09-12 | 深圳市航顺芯片技术研发有限公司 | 将外设ram共享为系统ram的方法、装置及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100994003B1 (ko) * | 2001-01-31 | 2010-11-11 | 가부시키가이샤 히타치세이사쿠쇼 | 데이터 처리 시스템 및 데이터 프로세서 |
US7500039B2 (en) * | 2005-08-19 | 2009-03-03 | International Business Machines Corporation | Method for communicating with a processor event facility |
WO2011112523A2 (en) * | 2010-03-08 | 2011-09-15 | Hewlett-Packard Development Company, L.P. | Data storage apparatus and methods |
CN101976229A (zh) * | 2010-11-09 | 2011-02-16 | 北京星网锐捷网络技术有限公司 | 一种系统中外部设备的数据读取方法、系统及装置 |
-
2014
- 2014-03-04 CN CN201410076490.3A patent/CN103885908B/zh active Active
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104850503A (zh) * | 2015-05-06 | 2015-08-19 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种通用地址空间管理方法及其结构 |
CN104850503B (zh) * | 2015-05-06 | 2017-09-19 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种通用地址空间管理方法及其系统 |
CN107980127A (zh) * | 2015-06-22 | 2018-05-01 | 高通股份有限公司 | 对快速外围组件互连(PCI)(PCIe)事务层的一致性驱动增强 |
CN106447599A (zh) * | 2015-08-11 | 2017-02-22 | 瑞萨电子株式会社 | 半导体装置 |
CN106447599B (zh) * | 2015-08-11 | 2021-10-08 | 瑞萨电子株式会社 | 半导体装置 |
CN107526695A (zh) * | 2016-06-20 | 2017-12-29 | 北京忆芯科技有限公司 | NVMe配置空间实现方法与装置 |
CN107526695B (zh) * | 2016-06-20 | 2021-03-02 | 北京忆芯科技有限公司 | NVMe配置空间实现方法与装置 |
CN107463829A (zh) * | 2017-09-27 | 2017-12-12 | 山东渔翁信息技术股份有限公司 | 一种密码卡中dma请求的处理方法、系统及相关装置 |
CN111813730A (zh) * | 2019-04-12 | 2020-10-23 | 意法半导体(鲁塞)公司 | 串行总线上的数据编码 |
WO2023124940A1 (zh) * | 2021-12-29 | 2023-07-06 | 合肥市芯海电子科技有限公司 | 一种直接存储器访问的嵌入式控制电路、芯片和电子设备 |
CN116737602A (zh) * | 2023-08-11 | 2023-09-12 | 深圳市航顺芯片技术研发有限公司 | 将外设ram共享为系统ram的方法、装置及存储介质 |
CN116737602B (zh) * | 2023-08-11 | 2023-11-03 | 深圳市航顺芯片技术研发有限公司 | 将外设ram共享为系统ram的方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103885908B (zh) | 2017-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103885908A (zh) | 一种基于外部设备可访问寄存器的数据传输系统及其方法 | |
EP2831727B1 (en) | Accessing a device on a remote machine | |
US9749413B2 (en) | Peer-to-peer interrupt signaling between devices coupled via interconnects | |
RU2619540C1 (ru) | Преобразователь протоколов между шиной cpci и шиной isa и соответствующий ему способ преобразования | |
CN106951388A (zh) | 一种基于PCIe的DMA数据传输方法及系统 | |
CN101853226B (zh) | 管芯上系统结构块的控制 | |
CN103282881A (zh) | 通过虚拟化直接共享智能设备 | |
CN110941578B (zh) | 一种具有dma功能的lio的设计方法及装置 | |
CN102184151A (zh) | Pci-e转pci桥装置及其主动预取数据的方法 | |
WO2022032990A1 (zh) | 一种命令信息传输方法、系统、装置及可读存储介质 | |
US20160275026A1 (en) | Weakly ordered doorbell | |
WO2013088283A2 (en) | Memory sharing by processors | |
US9727521B2 (en) | Efficient CPU mailbox read access to GPU memory | |
CN116055429A (zh) | 基于pcie的通信数据处理方法、装置、设备及存储介质 | |
CN115174673A (zh) | 具备低延迟处理器的数据处理装置、数据处理方法及设备 | |
CN115811509A (zh) | 一种总线通信方法及相关设备 | |
CN106354514B (zh) | 一种快速引导申威处理器bios的方法 | |
US10481811B2 (en) | Asynchronous copying of data within memory | |
CN114238183B (zh) | 实现Virtio设备的系统、方法和介质 | |
JP2009289117A (ja) | メモリクリア機構 | |
CN112559120B (zh) | 定制化pcie总线io虚拟化支撑方法 | |
WO2012143949A2 (en) | Secure digital host controller virtualization | |
KR100921504B1 (ko) | 다중 프로세서를 구비한 시스템 온 칩 시스템 내의프로세서간 통신 장치 및 방법 | |
CN101364183B (zh) | 虚拟机监视器、虚拟机系统及真实物理设备访问方法 | |
CN116186793B (zh) | 一种基于risc-v的安全芯片架构及其工作方法 |
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 |