用于多线程访问的软件定义FIFO缓冲器制造技术

技术编号:18465807 阅读:43 留言:0更新日期:2018-07-18 15:55
计算机系统包含硬件缓冲器控制器。对缓冲器的存储器访问请求不包含所述缓冲器内的地址,并且访问所述缓冲器的线程不访问或直接更新指向所述缓冲器内的位置的任何指针。所述存储器访问请求被寻址到所述硬件缓冲器控制器,所述硬件缓冲器控制器从其当前状态确定地址并且向所述地址发布存储器访问命令。所述硬件缓冲器控制器响应于所述存储器访问请求而更新其状态。响应于上溢或下溢条件或接近上溢或接近下溢条件,所述硬件缓冲器控制器评估其状态并且将事件输出到线程调度器。所述线程调度器随后可以阻止线程向所述硬件缓冲器控制器发布存储器访问请求。实施的所述缓冲器可以是FIFO或其它类型的缓冲器。

Software defined FIFO buffer for multithreaded access

The computer system consists of a hardware buffer controller. The memory access request to the buffer does not contain the address within the buffer, and the thread accessing the buffer does not access or directly updates any pointer to the position in the buffer. The memory access request is addressed to the hardware buffer controller, the hardware buffer controller determines the address from its current state and releases the memory access command to the address. The hardware buffer controller updates its state in response to the memory access request. The hardware buffer controller evaluates its state and outputs the event to the thread scheduler in response to overflowing or underflowed conditions or near overflowing or near underflow conditions. The thread scheduler can then prevent the thread from issuing the memory access request to the hardware buffer controller. The buffer implemented can be FIFO or other types of buffers.

【技术实现步骤摘要】
【国外来华专利技术】用于多线程访问的软件定义FIFO缓冲器
本专利技术涉及用于实施FIFO缓冲器的系统和方法。
技术介绍
在常规的计算机系统中,先进先出(FIFO)缓冲器可以由多个线程访问。然而,在常规系统中,一次仅一个线程可以访问FIFO缓冲器。这会引入延迟和处理开销,以防止在等待FIFO缓冲器的数据结构由另一线程释放时由阻塞线程同时访问。本文所公开的系统和方法提供一种用于实施同时可由多个线程访问的FIFO缓冲器的改进方法。附图说明为了使得将容易理解本专利技术的优点,将参考附图中所说明的具体实施例呈现对上文简述的本专利技术的更具体描述。在理解这些图式仅描绘本专利技术的典型实施例且因此不应认为其限制本专利技术的范围的情况下,将通过使用附图来以额外特异性和细节来描述并解释本专利技术,在附图中:图1是适合于实施根据本专利技术的实施例的方法的计算机系统的示意性框图;图2A到2B是根据本专利技术的实施例的用于实施硬件FIFO缓冲器的组件的示意性框图;图3A和3B是根据本专利技术的实施例的用于实施到硬件FIFO缓冲器的读取和写入的方法的过程流程图;以及图4是根据本专利技术的实施例用于使用硬件FIFO缓冲器防止缓冲本文档来自技高网...

【技术保护点】
1.一种方法,包括:提供存储可执行数据的存储器装置;提供处理装置,所述处理装置连接到所述存储器装置并且可用于检索和执行所述可执行数据;通过所述处理装置将所述存储器装置的一部分分配为缓冲器;通过所述处理装置开始硬件缓冲器控制器的状态以引用所述缓冲器;通过所述处理装置执行应用程序,执行所述应用程序包含执行访问所述缓冲器的请求,所述请求仅引用所述硬件缓冲器控制器并且不包含所述缓冲器内的任何地址;响应于所述请求,通过所述处理装置将所述请求输入到所述硬件缓冲器控制器;对于每个请求,通过以下操作由所述硬件缓冲器控制器处理所述请求:基于所述硬件缓冲器控制器的所述状态产生所述缓冲器内的地址;将包含所述地址的存...

【技术特征摘要】
【国外来华专利技术】2015.12.11 US 14/966,6311.一种方法,包括:提供存储可执行数据的存储器装置;提供处理装置,所述处理装置连接到所述存储器装置并且可用于检索和执行所述可执行数据;通过所述处理装置将所述存储器装置的一部分分配为缓冲器;通过所述处理装置开始硬件缓冲器控制器的状态以引用所述缓冲器;通过所述处理装置执行应用程序,执行所述应用程序包含执行访问所述缓冲器的请求,所述请求仅引用所述硬件缓冲器控制器并且不包含所述缓冲器内的任何地址;响应于所述请求,通过所述处理装置将所述请求输入到所述硬件缓冲器控制器;对于每个请求,通过以下操作由所述硬件缓冲器控制器处理所述请求:基于所述硬件缓冲器控制器的所述状态产生所述缓冲器内的地址;将包含所述地址的存储器访问指令输出到所述存储器装置;以及更新所述硬件缓冲器控制器的所述状态。2.根据权利要求1所述的方法,其中所述硬件缓冲器控制器实施先进先出(FIFO)缓冲器。3.根据权利要求2所述的方法,其中所述硬件缓冲器控制器的所述状态包含读取指针和写入指针;其中更新所述硬件缓冲器控制器的所述状态包括:对于所述请求中的每个写入请求,使所述写入指针递增;其中更新所述硬件缓冲器控制器的所述状态包括:对于所述请求中的每个读取请求,使所述读取指针递增。4.根据权利要求3所述的方法,其中使所述写入指针递增包括确定在时钟循环期间接收到的多个写入请求的数目;以及使所述写入指针递增所述多个写入请求的所述数目;并且其中使所述写入指针递增包括确定在所述时钟循环期间接收到的多个读取请求的数目,以及使所述读取指针递增所述多个读取请求的所述数目。5.根据权利要求3所述的方法,其中基于所述硬件缓冲器控制器的所述状态产生缓冲器内的地址包括:对于所述请求中的每个写入请求,输出所述写入指针的当前值;其中基于所述硬件缓冲器的所述状态产生所述缓冲器内的所述地址包括:对于所述请求中的每个读取请求,输出所述读取指针的当前值。6.根据权利要求5所述的方法,其进一步包括:通过处理装置计算一定量的所述写入请求与一定量的所述读取请求之间的差值;通过所述处理装置确定所述差值小于第一阈值且非零;响应于确定所述差值小于第一阈值且非零,通过所述处理装置输出指示所述缓冲器接近空的事件;响应于指示所述缓冲器接近空的所述事件,通过所述处理装置阻止由所述处理装置执行的一个或多个执行线程产生读取请求。7.根据权利要求5所述的方法,其进一步包括:通过所述硬件缓冲器控制器计算一定量的所述写入请求与一定量的所述读取请求之间的差;通过所述硬件缓冲器控制器确定所述差值大于第一阈值;响应于确定所述差值大于第一阈值,通过所述硬件缓冲器控制器输出指示所述缓冲器接近满的事件;响应于指示所述缓冲器接近满的所述事件,通过所述处理装置阻止由所述处理装置执行的一个或多个执行线程产生写入请求。8.根据权利要求1所述的方法,其中通过硬件软件组件处理所述请求,其进一步包括:集中所述请求中的多个写入请求;将集中写入指令传输到所述存储器装置,所述集中写入指令包含对应于所述多个写入请求的所述缓冲器内的多个地址;集中所述请求中的多个读取请求;以及将集中读取指令传输到所述存储器装置,所述集中读取指令包含对应于所述多个读取请求的所述缓冲器内的多个地址。9.根据权利要求8所述的方法,其中所述多个写入请求由多个执行线程以重叠方式发布,使得在所述请求中的其它请求输入到所述硬件缓冲器控制器之前接收所述写入请求中的至少一个写入请求。10.根据权利要求9所述的方法,其进一步包括:通过处理装置评估所述硬件缓冲器控制器的状态;通过所述处理装置确定所述硬件缓冲器控制器的所述状态满足阈值条件;响应于确定所述硬件缓冲器控制器的所述状态满足所述阈值条件,通过所述处理装...

【专利技术属性】
技术研发人员:曼基特·洛
申请(专利权)人:图芯芯片技术有限公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1