CN108279927A - 可调整指令优先级的多通道指令控制方法及***、控制器 - Google Patents
可调整指令优先级的多通道指令控制方法及***、控制器 Download PDFInfo
- Publication number
- CN108279927A CN108279927A CN201711433361.5A CN201711433361A CN108279927A CN 108279927 A CN108279927 A CN 108279927A CN 201711433361 A CN201711433361 A CN 201711433361A CN 108279927 A CN108279927 A CN 108279927A
- Authority
- CN
- China
- Prior art keywords
- instruction
- memory
- controller
- priority
- sent
- 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
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000015654 memory Effects 0.000 claims abstract description 106
- 238000004891 communication Methods 0.000 claims description 20
- 230000001360 synchronised effect Effects 0.000 claims description 18
- 238000012546 transfer Methods 0.000 claims description 15
- 239000003550 marker Substances 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 238000013500 data storage Methods 0.000 claims description 3
- 230000005055 memory storage Effects 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008844 regulatory mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/327—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for interrupts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本发明提供一种可调整指令优先级的多通道指令控制方法及***、控制器,包括为每个线程配置一组状态控制器;通过取指请求仲裁器仲裁不同的数据读取请求;将指令数据通过指令存储仲裁器存储至片上内存对应的存储空间;通过指令读取控制器按照轮询顺序读取片上内存中的指令;通过指令译码器将设备的配备指令的指令数据和设备标志发送至指令发送器;通过指令发送器将指令数据发送至对应的设备;通过信号控制器接收设备的反馈信号,并对多个不同线程进行切换以控制设备的执行顺序。本发明的可调整指令优先级的多通道指令控制方法及***、控制器解决了优先级抢占的问题、指令传输效率问题、多线程操作同步问题。
Description
技术领域
本发明涉及指令控制的技术领域,特别是涉及一种可调整指令优先级的多通道指令控制方法及***、控制器。
背景技术
随着物联网以及人工智能技术的蓬勃发展,对高性能低功耗的芯片的需求越来越大。现有技术中,多核多线程并行处理的技术广泛应用于各处理器中。在多线程情景中,芯片内部的指令读取模块以及各个处理单元之间的同步运行,已经成为芯片性能的瓶颈之一。
目前,读取指令的常见的方式大致可以分为两种:
(1)通过CPU直接读取指令并配置内部寄存器
这种方式优点是实现简单。目前许多嵌入式应用的芯片采用了总线直接寻址的方式读取指令。由于AMBA(Advanced Microcontroller Bus Architecture)总线在低功耗嵌入式芯片的大量应用,AMBA总线的直接寻址是芯片中经常使用的寻址方式。此种方式是利用AMBA总线将CPU与指令存储器,以及接收指令的设备连接,以提高单一指令的传送的速率和效率。但是,由于设备与指令存储器之间的信息交换必须通过CPU才能进行中转,从而降低了CPU的工作效率,在读取大量的指令的时候,CPU的工作性能明显下降。这是面向CPU的双总线结构的主要缺点。同时为了方便管理指令,都要专门为指令划分的一个空间,以便于软件进行操作,这种预占用的模式增加了内存的开销。如果建立的空间大小偏大或者偏小,都容易引起内存上的问题。通常而言,完全使用总线直接寻址、传递芯片中的所有指令,在指令数量较多的情况下,将会导致指令读取成为了整个芯片的性能瓶颈。因此,对于大规模数量的指令读写,显然用直接寻址是不太合适的。
(2)间接配置法
目前,不少高性能片上***(System on Chip,SoC)芯片使了专用的取指令模块。通常采用一级链表的技术,CPU对指令读取模块进行配置,将指令的地址以及数量发送给取指令模块,取指令模块再发送请求给内存控制器,内存控制器在总线空闲的时候,直接从内存存取数据并传输给取指令模块,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率,可以大大节省***资源。但是这种做法存在不足之处:如果一次完整的操作需要多段指令,且指令分散在不同的位置,CPU需要进行多次类似直接寻址的操作,从而降低了CPU的工作效率。
除了性能上的问题,传统的单端口方式还存在优先级抢占的问题。由于总线传送具有分时性,当有多个主设备同时申请总线的使用时必须进行总线的仲裁。当低优先级的设备早于高优先级的设备进行读取指令时,总线将会被低优先级的设备占据,高优先级必须等到低优先级的设备读取完指令才能获取总线资源。这种没有资源调控机制的硬件设备容易造成信息的延时,在即时性需求强的应用处形成性能瓶颈。对于人工智能芯片,其内部有许多个神经网络单元以及图形处理器。如果使用传统的实现方式,对多个硬件处理模块发送指令,当其中一个处理模块堵塞的时候,其余处理模块也不能接收新的指令。一种常见的解决办法是引入中断模块,具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套,或者说高抢占式优先级的中断可以嵌套低抢占式优先级的中断。但这样做的话,每个硬件处理模块都会搭配一个指令读取模块,会占用很多的接口资源,占用的面积会比较大,并且各个硬件处理模块之间的同步通信会变得比较复杂,难以控制。频繁处理中断也会增加CPU的开销,导致CPU负载过大。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种可调整指令优先级的多通道指令控制方法及***、控制器,提高了整体芯片的工作性能,解决了优先级抢占的问题,控制简单,节省了大量的接口资源以及芯片面积。
为实现上述目的及其他相关目的,本发明提供一种可调整指令优先级的多通道指令控制方法,包括以下步骤:设置状态寄存器、取指请求仲裁器、指令存储仲裁器、指令读取控制器、指令译码器、信号控制器和指令发送器;为每个线程配置一组状态控制器,所述状态控制器用于存储指令块的地址所在的内存空间的起始地址、结束地址以及指令块的数量,并配置读取指令启动信号;根据状态寄存器的信息发送描述符指针读取请求至总线,根据总线返回的指令段的起始地址和结束地址发送控制命令读取请求至总线,并通过取指请求仲裁器仲裁不同的数据读取请求;根据当前的指令标号,将总线传输的指令数据通过指令存储仲裁器存储至片上内存对应的存储空间;通过指令读取控制器采用轮询方式仲裁不同线程的指令读取请求,按照轮询顺序读取片上内存中的指令,并通过译码选择器将指令传输到对应的指令译码器;再通过指令译码器将设备的配备指令的指令数据和设备标志发送至指令发送器,将设备间的同步通信指令对应的信号标志发送至信号控制器,以及将中断指令对应的中断信号发送至***;通过指令发送器将指令数据发送至对应的设备;通过信号控制器接收设备对于接收到的指令数据的反馈信号;根据接收的反馈信号和同步通信指令,通过信号控制器对多个不同线程进行切换以控制设备的执行顺序。
于本发明一实施例中,所述取指请求仲裁器的仲裁原则为:
单个线程中地址请求优先于数据请求,高优先级优先于低优先级;
不同线程之间的数据请求利用轮询方式实现,停顿的线程将被直接跳过。
于本发明一实施例中,在同一时刻由指令存储仲裁器选中的通道对应的FIFO控制器对指令对应的存储空间进行读写操作。
对应地,本发明提供一种可调整指令优先级的多通道指令控制***,包括设置模块、配置模块、仲裁模块、指令处理模块、接收模块和切换模块;
所述设置模块用于设置状态寄存器、取指请求仲裁器、指令存储仲裁器、指令读取控制器、指令译码器、信号控制器和指令发送器;
所述配置模块用于为每个线程配置一组状态控制器,所述状态控制器用于存储指令块的地址所在的内存空间的起始地址、结束地址以及指令块的数量,并配置读取指令启动信号;
所述仲裁模块用于根据状态寄存器的信息发送描述符指针读取请求至总线,根据总线返回的指令段的起始地址和结束地址发送控制命令读取请求至总线,并通过取指请求仲裁器仲裁不同的数据读取请求;
指令处理模块用于根据当前的指令标号,将总线传输的指令数据通过指令存储仲裁器存储至片上内存对应的存储空间;通过指令读取控制器采用轮询方式仲裁不同线程的指令读取请求,按照轮询顺序读取片上内存中的指令,并通过译码选择器将指令传输到对应的指令译码器;再通过指令译码器将设备的配备指令的指令数据和设备标志发送至指令发送器,将设备间的同步通信指令对应的信号标志发送至信号控制器,以及将中断指令对应的中断信号发送至***;通过指令发送器将指令数据发送至对应的设备;
所述接收模块用于通过信号控制器接收设备对于接收到的指令数据的反馈信号;
所述切换模块用于根据接收的反馈信号和同步通信指令,通过信号控制器对多个不同线程进行切换以控制设备的执行顺序。
于本发明一实施例中,所述取指请求仲裁器的仲裁原则为:
单个线程中地址请求优先于数据请求,高优先级优先于低优先级;
不同线程之间的数据请求利用轮询方式实现,停顿的线程将被直接跳过。
于本发明一实施例中,在同一时刻由指令存储仲裁器选中的通道对应的FIFO控制器对指令对应的存储空间进行读写操作。
本发明提供一种可调整指令优先级的多通道指令控制器,包括处理器及存储器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器存储的计算机程序,以使所述可调整指令优先级的多通道指令控制器执行上述的可调整指令优先级的多通道指令控制方法。
最后,本发明提供一种可调整指令优先级的多通道指令控制***,包括上述的可调整指令优先级的多通道指令控制器、状态寄存器、取指请求仲裁器、指令存储仲裁器、指令读取控制器、指令译码器、信号控制器和指令发送器;
所述状态寄存器用于存储指令块的地址所在的内存空间的起始地址、结束地址以及指令块的数量,并配置读取指令启动信号;
所述取指请求仲裁器用于仲裁不同的数据读取请求;
所述指令存储仲裁器用于将总线传输的指令数据存储至片上内存对应的存储空间;
所述指令读取控制器用于采用轮询方式仲裁不同线程的指令读取请求,按照轮询顺序读取片上内存中的指令;
所述指令译码器用于将设备的配备指令的指令数据和设备标志发送至指令发送器,将设备间的同步通信指令对应的信号标志发送至信号控制器,以及将中断指令对应的中断信号发送至***;
所述信号控制器用于接收设备对于接收到的指令数据的反馈信号,以及对多个不同线程进行切换以控制设备的执行顺序;
所述指令发送器用于将设备的指令数据发送至对应的设备。
如上所述,本发明的可调整指令优先级的多通道指令控制方法及***、控制器,具有以下有益效果:
(1)提高了整体芯片的工作性能,并解决了优先级抢占的问题,利用单接口的方式,实现了多个图形处理模块之间的同步,控制简单,节省了大量的接口资源以及芯片面积;
(2)在细粒度多线程情况下,当一个线程停顿时,能够读取其他线程中的指令,从而能够隐藏因为长、短停顿而导致的吞吐量损失;
(3)在细粒度情况中,线程的交织能够消除全空槽;
(4)由于每个时钟周期都会改变发射线程,故能够隐藏较长延迟的操作,极大地提高了芯片的性能;
(5)支持两级链表间接寻址,只需要一块极小的固定空间,存放第一级的少量链表地址,而指令存放的地址则没有任何限制,从而克服了内存空间划分及管理上的难题,节省了硬件资源,也便于软件人员进行开发,灵活性高。
附图说明
图1显示为本发明的可调整指令优先级的多通道指令控制方法于一实施例中的流程图;
图2显示为本发明的可调整指令优先级的多通道指令控制方法于一实施例中的***架构图;
图3显示为本发明的指令二级链表于一实施例中的示意图;
图4显示为本发明的细粒度多线程请求于一实施例中的示意图;
图5显示为本发明的指令读写控制架构于一实施例中的示意图;
图6显示为本发明的可调整指令优先级的多通道指令控制***于一实施例中的结构示意图;
图7显示为本发明的可调整指令优先级的多通道指令控制器于一实施例中的结构示意图。
元件标号说明
61 设置模块
62 配置模块
63 仲裁模块
64 指令处理模块
65 接收模块
66 切换模块
71 处理器
72 存储器
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明的可调整指令优先级的多通道指令控制方法及***、控制器提高了整体芯片的工作性能,解决了优先级抢占的问题,控制简单,节省了大量的接口资源以及芯片面积。
如图1所示,于一实施例中,本发明的可调整指令优先级的多通道指令控制方法包括以下步骤:
步骤S1、设置状态寄存器、取指请求仲裁器、指令存储仲裁器、指令读取控制器、指令译码器、信号控制器和指令发送器。
如图2所示,创建一种可调整指令优先级的多通道指令控制器的硬件架构。具体地,在SOC总体框架内设置读取指令的架构,包括状态寄存器、取指请求仲裁器、指令存储仲裁器、指令读取控制器、指令译码器、信号控制器和指令发送器。
步骤S2、为每个线程配置一组状态控制器,所述状态控制器用于存储指令块的地址所在的内存空间的起始地址、结束地址以及指令块的数量,并配置读取指令启动信号。
具体地,每个线程都由一组状态寄存器进行控制。状态寄存器由CPU总线配置,配置存储指令块的地址所在的内存空间的起始地址、结束地址以及指令块的数量,并配置读取指令启动信号。如图3所示,在***内存中划分出一块存储空间,所存储的数据是每个指令块的实际地址,通过访问此存储空间来获得指令的实际地址。此存储空间的满空状态由读指针和写指针决定。CPU配置好状态寄存器以后,指令控制器即可独立工作,不需要CPU再参与配置,从而减轻了CPU的工作负荷。
步骤S3、根据状态寄存器的信息发送描述符指针读取请求至总线,根据总线返回的指令段的起始地址和结束地址发送控制命令读取请求至总线,并通过取指请求仲裁器仲裁不同的数据读取请求。
具体地,根据状态寄存器的信息,发送描述符指针读取请求指总线,总线传输回来的描述符指针数据是指令段的起始地址以及结束地址。根据指令段的起始地址以及结束地址发送控制命令读取请求制总线。其中,两种不同的数据读取请求由取指请求仲裁器进行请求仲裁。如图4所示,单个线程中包括高优先级和低优先级两种不同层次的数据请求,默认是高优先级会抢占低优先级的顺序。对于取指请求仲裁器而言,单个线程中地址请求优先于数据请求,高优先级优先于低优先级。不同线程之间的数据请求利用轮询方式实现,即在1~N个线程中间轮流请求,停顿的线程将被直接跳过。取指请求仲裁器对于每次数据请求都会记录对应的请求来源;当请求数据返回时,根据记录标号来判断是指令地址还是指令数据以及属于哪个线程。
步骤S4、根据当前的指令标号,将总线传输的指令数据通过指令存储仲裁器存储至片上内存对应的存储空间;通过指令读取控制器采用轮询方式仲裁不同线程的指令读取请求,按照轮询顺序读取片上内存中的指令,并通过译码选择器将指令传输到对应的指令译码器;再通过指令译码器将设备的配备指令的指令数据和设备标志发送至指令发送器,将设备间的同步通信指令对应的信号标志发送至信号控制器,以及将中断指令对应的中断信号发送至***;通过指令发送器将指令数据发送至对应的设备。
如图5所示,根据当前的指令标号,将总线传输的指令数据由指令存储仲裁器存储在片上内存对应的存储空间。在同一时刻由指令存储仲裁器选中的通道对应的FIFO控制器对指令对应的存储空间进行读写操作。
指令读取器利用轮询方式仲裁不同线程的指令读取请求,按照轮询顺序读取片上内存中的指令,并通过译码选择器,将其传输到对应的指令译码器以对指令进行译码操作。
具体地,根据读取的指令的不同类型,指令译码器执行不同的操作:
(1)若所述指令为不同设备之间进行同步通信的指令,指令译码器在译码后将对应的信号标志发送至信号控制器。
(2)若所述指令是设备的配置指令,指令译码器将指令数据和设备标志一起发送至指令发送器,以供指令发送器将指令数据发送至对应的设备。
(3)所述指令是中断指令,指令译码器将对应的中断信号发送至***。
步骤S5、通过信号控制器接收设备对于接收到的指令数据的反馈信号。
具体地,设备根据自身的设备标志,接收对应的指令数据,并在进行相关操作后,发送反馈信号至信号控制器。
步骤S6、根据接收的反馈信号和同步通信指令,通过信号控制器对多个不同线程进行切换以控制设备的执行顺序。
具体地,信号控制器根据接收的反馈信号和同步通信指令进行仲裁,对多个不同线程进行切换,从而控制设备的执行顺序。
至此,即完成了一次完整的多通道指令控制。之后,总线通过访问状态寄存器来查询当前指令的读取状况,并将新的指令块存储地址发送至状态寄存器。重复上述步骤S1-S6,直至所有的指令传输完毕。
如图6所示,于一实施例中,本发明的可调整指令优先级的多通道指令控制***包括设置模块61、配置模块62、仲裁模块63、指令处理模块64、接收模块65和切换模块66。
设置模块61用于设置状态寄存器、取指请求仲裁器、指令存储仲裁器、指令读取控制器、指令译码器、信号控制器和指令发送器。
如图2所示,创建一种可调整指令优先级的多通道指令控制器的硬件架构。具体地,在SOC总体框架内设置读取指令的架构,包括状态寄存器、取指请求仲裁器、指令存储仲裁器、指令读取控制器、指令译码器、信号控制器和指令发送器。
配置模块62与设置模块61相连,用于为每个线程配置一组状态控制器,所述状态控制器用于存储指令块的地址所在的内存空间的起始地址、结束地址以及指令块的数量,并配置读取指令启动信号。
具体地,每个线程都由一组状态寄存器进行控制。状态寄存器由CPU总线配置,配置存储指令块的地址所在的内存空间的起始地址、结束地址以及指令块的数量,并配置读取指令启动信号。如图3所示,在***内存中划分出一块存储空间,所存储的数据是每个指令块的实际地址,通过访问此存储空间来获得指令的实际地址。此存储空间的满空状态由读指针和写指针决定。CPU配置好状态寄存器以后,指令控制器即可独立工作,不需要CPU再参与配置,从而减轻了CPU的工作负荷。
仲裁模块63与配置模块62相连,用于根据状态寄存器的信息发送描述符指针读取请求至总线,根据总线返回的指令段的起始地址和结束地址发送控制命令读取请求至总线,并通过取指请求仲裁器仲裁不同的数据读取请求。
具体地,根据状态寄存器的信息,发送描述符指针读取请求指总线,总线传输回来的描述符指针数据是指令段的起始地址以及结束地址。根据指令段的起始地址以及结束地址发送控制命令读取请求制总线。其中,两种不同的数据读取请求由取指请求仲裁器进行请求仲裁。如图4所示,单个线程中包括高优先级和低优先级两种不同层次的数据请求,默认是高优先级会抢占低优先级的顺序。对于取指请求仲裁器而言,单个线程中地址请求优先于数据请求,高优先级优先于低优先级。不同线程之间的数据请求利用轮询方式实现,即在1~N个线程中间轮流请求,停顿的线程将被直接跳过。取指请求仲裁器对于每次数据请求都会记录对应的请求来源;当请求数据返回时,根据记录标号来判断是指令地址还是指令数据以及属于哪个线程。
指令处理模块64与仲裁模块63相连,用于根据当前的指令标号,将总线传输的指令数据通过指令存储仲裁器存储至片上内存对应的存储空间;通过指令读取控制器采用轮询方式仲裁不同线程的指令读取请求,按照轮询顺序读取片上内存中的指令,并通过译码选择器将指令传输到对应的指令译码器;再通过指令译码器将设备的配备指令的指令数据和设备标志发送至指令发送器,将设备间的同步通信指令对应的信号标志发送至信号控制器,以及将中断指令对应的中断信号发送至***;通过指令发送器将指令数据发送至对应的设备。
如图5所示,根据当前的指令标号,将总线传输的指令数据由指令存储仲裁器存储在片上内存对应的存储空间。在同一时刻由指令存储仲裁器选中的通道对应的FIFO控制器对指令对应的存储空间进行读写操作。
指令读取器利用轮询方式仲裁不同线程的指令读取请求,按照轮询顺序读取片上内存中的指令,并通过译码选择器,将其传输到对应的指令译码器以对指令进行译码操作。
具体地,根据读取的指令的不同类型,指令译码器执行不同的操作:
(1)若所述指令为不同设备之间进行同步通信的指令,指令译码器在译码后将对应的信号标志发送至信号控制器。
(2)若所述指令是设备的配置指令,指令译码器将指令数据和设备标志一起发送至指令发送器,以供指令发送器将指令数据发送至对应的设备。
(3)所述指令是中断指令,指令译码器将对应的中断信号发送至***。
接收模块65与指令处理模块64相连,用于通过信号控制器接收设备对于接收到的指令数据的反馈信号。
具体地,设备根据自身的设备标志,接收对应的指令数据,并在进行相关操作后,发送反馈信号至信号控制器。
切换模块66与接收模块65相连,用于根据接收的反馈信号和同步通信指令,通过信号控制器对多个不同线程进行切换以控制设备的执行顺序。
具体地,信号控制器根据接收的反馈信号和同步通信指令进行仲裁,对多个不同线程进行切换,从而控制设备的执行顺序。
至此,即完成了一次完整的多通道指令控制。之后,总线通过访问状态寄存器来查询当前指令的读取状况,并将新的指令块存储地址发送至状态寄存器。重复上述步骤S1-S6,直至所有的指令传输完毕。
需要说明的是,应理解以上***的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,x模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上x模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC),或,一个或多个微处理器(digitalsingnalprocessor,简称DSP),或,一个或者多个现场可编程门阵列(FieldProgrammableGateArray,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessingUnit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上***(system-on-a-chip,简称SOC)的形式实现。
如图7所示,于一实施例中,本发明的可调整指令优先级的多通道指令控制器包括处理器71及存储器72。
所述存储器72用于存储计算机程序。
优选地,所述存储器72包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
所述处理器71与所述存储器72相连,用于执行所述存储器72存储的计算机程序,以使所述可调整指令优先级的多通道指令控制器执行上述的可调整指令优先级的多通道指令控制方法。
优选地,所述处理器71可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DigitalSignalProcessing,简称DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
于一实施例中,本发明的可调整指令优先级的多通道指令控制***包括上述的可调整指令优先级的多通道指令控制器、状态寄存器、取指请求仲裁器、指令存储仲裁器、指令读取控制器、指令译码器、信号控制器和指令发送器;
所述状态寄存器用于存储指令块的地址所在的内存空间的起始地址、结束地址以及指令块的数量,并配置读取指令启动信号;
所述取指请求仲裁器用于仲裁不同的数据读取请求;
所述指令存储仲裁器用于将总线传输的指令数据存储至片上内存对应的存储空间;
所述指令读取控制器用于采用轮询方式仲裁不同线程的指令读取请求,按照轮询顺序读取片上内存中的指令;
所述指令译码器用于将设备的配备指令的指令数据和设备标志发送至指令发送器,将设备间的同步通信指令对应的信号标志发送至信号控制器,以及将中断指令对应的中断信号发送至***;
所述信号控制器用于接收设备对于接收到的指令数据的反馈信号,以及对多个不同线程进行切换以控制设备的执行顺序;
所述指令发送器用于将设备的指令数据发送至对应的设备。
综上所述,本发明的可调整指令优先级的多通道指令控制方法及***、控制器提高了整体芯片的工作性能,并解决了优先级抢占的问题,利用单接口的方式,实现了多个图形处理模块之间的同步,控制简单,节省了大量的接口资源以及芯片面积;在细粒度多线程情况下,当一个线程停顿时,能够读取其他线程中的指令,从而能够隐藏因为长、短停顿而导致的吞吐量损失;在细粒度情况中,线程的交织能够消除全空槽;由于每个时钟周期都会改变发射线程,故能够隐藏较长延迟的操作,极大地提高了芯片的性能;支持两级链表间接寻址,只需要一块极小的固定空间,存放第一级的少量链表地址,而指令存放的地址则没有任何限制,从而克服了内存空间划分及管理上的难题,节省了硬件资源,也便于软件人员进行开发,灵活性高。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (8)
1.一种可调整指令优先级的多通道指令控制方法,其特征在于,包括以下步骤:
设置状态寄存器、取指请求仲裁器、指令存储仲裁器、指令读取控制器、指令译码器、信号控制器和指令发送器;
为每个线程配置一组状态控制器,所述状态控制器用于存储指令块的地址所在的内存空间的起始地址、结束地址以及指令块的数量,并配置读取指令启动信号;
根据状态寄存器的信息发送描述符指针读取请求至总线,根据总线返回的指令段的起始地址和结束地址发送控制命令读取请求至总线,并通过取指请求仲裁器仲裁不同的数据读取请求;
根据当前的指令标号,将总线传输的指令数据通过指令存储仲裁器存储至片上内存对应的存储空间;通过指令读取控制器采用轮询方式仲裁不同线程的指令读取请求,按照轮询顺序读取片上内存中的指令,并通过译码选择器将指令传输到对应的指令译码器;再通过指令译码器将设备的配备指令的指令数据和设备标志发送至指令发送器,将设备间的同步通信指令对应的信号标志发送至信号控制器,以及将中断指令对应的中断信号发送至***;通过指令发送器将指令数据发送至对应的设备;
通过信号控制器接收设备对于接收到的指令数据的反馈信号;
根据接收的反馈信号和同步通信指令,通过信号控制器对多个不同线程进行切换以控制设备的执行顺序。
2.根据权利要求1所述的可调整指令优先级的多通道指令控制方法,其特征在于,所述取指请求仲裁器的仲裁原则为:
单个线程中地址请求优先于数据请求,高优先级优先于低优先级;
不同线程之间的数据请求利用轮询方式实现,停顿的线程将被直接跳过。
3.根据权利要求1所述的可调整指令优先级的多通道指令控制方法,其特征在于,在同一时刻由指令存储仲裁器选中的通道对应的FIFO控制器对指令对应的存储空间进行读写操作。
4.一种可调整指令优先级的多通道指令控制***,其特征在于,包括设置模块、配置模块、仲裁模块、指令处理模块、接收模块和切换模块;
所述设置模块用于设置状态寄存器、取指请求仲裁器、指令存储仲裁器、指令读取控制器、指令译码器、信号控制器和指令发送器;
所述配置模块用于为每个线程配置一组状态控制器,所述状态控制器用于存储指令块的地址所在的内存空间的起始地址、结束地址以及指令块的数量,并配置读取指令启动信号;
所述仲裁模块用于根据状态寄存器的信息发送描述符指针读取请求至总线,根据总线返回的指令段的起始地址和结束地址发送控制命令读取请求至总线,并通过取指请求仲裁器仲裁不同的数据读取请求;
指令处理模块用于根据当前的指令标号,将总线传输的指令数据通过指令存储仲裁器存储至片上内存对应的存储空间;通过指令读取控制器采用轮询方式仲裁不同线程的指令读取请求,按照轮询顺序读取片上内存中的指令,并通过译码选择器将指令传输到对应的指令译码器;再通过指令译码器将设备的配备指令的指令数据和设备标志发送至指令发送器,将设备间的同步通信指令对应的信号标志发送至信号控制器,以及将中断指令对应的中断信号发送至***;通过指令发送器将指令数据发送至对应的设备;
所述接收模块用于通过信号控制器接收设备对于接收到的指令数据的反馈信号;
所述切换模块用于根据接收的反馈信号和同步通信指令,通过信号控制器对多个不同线程进行切换以控制设备的执行顺序。
5.根据权利要求4所述的可调整指令优先级的多通道指令控制***,其特征在于,所述取指请求仲裁器的仲裁原则为:
单个线程中地址请求优先于数据请求,高优先级优先于低优先级;
不同线程之间的数据请求利用轮询方式实现,停顿的线程将被直接跳过。
6.根据权利要求4所述的可调整指令优先级的多通道指令控制***,其特征在于,在同一时刻由指令存储仲裁器选中的通道对应的FIFO控制器对指令对应的存储空间进行读写操作。
7.一种可调整指令优先级的多通道指令控制器,其特征在于,包括处理器及存储器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器存储的计算机程序,以使所述可调整指令优先级的多通道指令控制器执行权利要求1-3之一所述的可调整指令优先级的多通道指令控制方法。
8.一种可调整指令优先级的多通道指令控制***,其特征在于,包括权利要求7所述的可调整指令优先级的多通道指令控制器、状态寄存器、取指请求仲裁器、指令存储仲裁器、指令读取控制器、指令译码器、信号控制器和指令发送器;
所述状态寄存器用于存储指令块的地址所在的内存空间的起始地址、结束地址以及指令块的数量,并配置读取指令启动信号;
所述取指请求仲裁器用于仲裁不同的数据读取请求;
所述指令存储仲裁器用于将总线传输的指令数据存储至片上内存对应的存储空间;
所述指令读取控制器用于采用轮询方式仲裁不同线程的指令读取请求,按照轮询顺序读取片上内存中的指令;
所述指令译码器用于将设备的配备指令的指令数据和设备标志发送至指令发送器,将设备间的同步通信指令对应的信号标志发送至信号控制器,以及将中断指令对应的中断信号发送至***;
所述信号控制器用于接收设备对于接收到的指令数据的反馈信号,以及对多个不同线程进行切换以控制设备的执行顺序;
所述指令发送器用于将设备的指令数据发送至对应的设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711433361.5A CN108279927B (zh) | 2017-12-26 | 2017-12-26 | 可调整指令优先级的多通道指令控制方法及***、控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711433361.5A CN108279927B (zh) | 2017-12-26 | 2017-12-26 | 可调整指令优先级的多通道指令控制方法及***、控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108279927A true CN108279927A (zh) | 2018-07-13 |
CN108279927B CN108279927B (zh) | 2020-07-31 |
Family
ID=62802286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711433361.5A Active CN108279927B (zh) | 2017-12-26 | 2017-12-26 | 可调整指令优先级的多通道指令控制方法及***、控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108279927B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110362347A (zh) * | 2019-07-18 | 2019-10-22 | 成都夸克光电技术有限公司 | 一种实时优先级多通道处理器及控制方法 |
CN110659072A (zh) * | 2019-09-26 | 2020-01-07 | 深圳忆联信息***有限公司 | 基于Queue结构的可插队命令下发加速方法和装置 |
CN111707851A (zh) * | 2020-05-05 | 2020-09-25 | 许昌开普检测研究院股份有限公司 | 多通道交流信号状态序列顺序控制发生器 |
CN113596867A (zh) * | 2021-06-17 | 2021-11-02 | 青岛中科英泰商用***股份有限公司 | 一种基于FreeRTOS***的4g模块控制方法与装置 |
CN114138341A (zh) * | 2021-12-01 | 2022-03-04 | 海光信息技术股份有限公司 | 微指令缓存资源的调度方法、装置、程序产品以及芯片 |
CN114328321A (zh) * | 2022-03-16 | 2022-04-12 | 宜科(天津)电子有限公司 | 一种编码器内数据采样和通信方法、单片机及存储介质 |
CN114584420A (zh) * | 2022-05-06 | 2022-06-03 | 艾德克斯电子(南京)有限公司 | 一种多机设备组网架构 |
CN115658150A (zh) * | 2022-10-31 | 2023-01-31 | 海光信息技术股份有限公司 | 一种指令分配方法、处理器、芯片及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1518691A (zh) * | 2001-06-22 | 2004-08-04 | ض� | 用于在多线程处理器中分配线程优先级的方法和设备 |
US20080155233A1 (en) * | 2003-04-25 | 2008-06-26 | John Wesley Ward | Apparatus for adjusting instruction thread priority in a multi-thread processor |
CN101334766A (zh) * | 2008-06-30 | 2008-12-31 | 东软飞利浦医疗设备***有限责任公司 | 一种并行微处理器及其实现方法 |
CN101763251A (zh) * | 2010-01-05 | 2010-06-30 | 浙江大学 | 多线程微处理器的指令译码缓冲装置 |
CN102231142A (zh) * | 2011-07-21 | 2011-11-02 | 浙江大学 | 一种带有仲裁器的多通道dma控制器 |
CN102414659A (zh) * | 2009-04-28 | 2012-04-11 | 想象技术有限公司 | 用于在多线程微处理器中调度指令的发布的方法和设备 |
CN103262030A (zh) * | 2010-12-16 | 2013-08-21 | 英特尔公司 | 经由动态聚合操作的快速且线性化并发优先级队列 |
-
2017
- 2017-12-26 CN CN201711433361.5A patent/CN108279927B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1518691A (zh) * | 2001-06-22 | 2004-08-04 | ض� | 用于在多线程处理器中分配线程优先级的方法和设备 |
US20080155233A1 (en) * | 2003-04-25 | 2008-06-26 | John Wesley Ward | Apparatus for adjusting instruction thread priority in a multi-thread processor |
CN101334766A (zh) * | 2008-06-30 | 2008-12-31 | 东软飞利浦医疗设备***有限责任公司 | 一种并行微处理器及其实现方法 |
CN102414659A (zh) * | 2009-04-28 | 2012-04-11 | 想象技术有限公司 | 用于在多线程微处理器中调度指令的发布的方法和设备 |
CN101763251A (zh) * | 2010-01-05 | 2010-06-30 | 浙江大学 | 多线程微处理器的指令译码缓冲装置 |
CN103262030A (zh) * | 2010-12-16 | 2013-08-21 | 英特尔公司 | 经由动态聚合操作的快速且线性化并发优先级队列 |
CN102231142A (zh) * | 2011-07-21 | 2011-11-02 | 浙江大学 | 一种带有仲裁器的多通道dma控制器 |
Non-Patent Citations (1)
Title |
---|
胡孔阳 等: "一种可配优先级Round-Robin仲裁器实现", 《中国集成电路》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110362347A (zh) * | 2019-07-18 | 2019-10-22 | 成都夸克光电技术有限公司 | 一种实时优先级多通道处理器及控制方法 |
CN110362347B (zh) * | 2019-07-18 | 2023-02-28 | 成都夸克光电技术有限公司 | 一种实时优先级多通道处理器及控制方法 |
CN110659072A (zh) * | 2019-09-26 | 2020-01-07 | 深圳忆联信息***有限公司 | 基于Queue结构的可插队命令下发加速方法和装置 |
CN110659072B (zh) * | 2019-09-26 | 2021-09-14 | 深圳忆联信息***有限公司 | 基于Queue结构的可插队命令下发加速方法和装置 |
CN111707851B (zh) * | 2020-05-05 | 2022-08-16 | 许昌开普检测研究院股份有限公司 | 多通道交流信号状态序列顺序控制发生器 |
CN111707851A (zh) * | 2020-05-05 | 2020-09-25 | 许昌开普检测研究院股份有限公司 | 多通道交流信号状态序列顺序控制发生器 |
CN113596867A (zh) * | 2021-06-17 | 2021-11-02 | 青岛中科英泰商用***股份有限公司 | 一种基于FreeRTOS***的4g模块控制方法与装置 |
CN113596867B (zh) * | 2021-06-17 | 2024-05-07 | 青岛中科英泰商用***股份有限公司 | 一种基于FreeRTOS***的4g模块控制方法与装置 |
CN114138341A (zh) * | 2021-12-01 | 2022-03-04 | 海光信息技术股份有限公司 | 微指令缓存资源的调度方法、装置、程序产品以及芯片 |
CN114328321A (zh) * | 2022-03-16 | 2022-04-12 | 宜科(天津)电子有限公司 | 一种编码器内数据采样和通信方法、单片机及存储介质 |
CN114584420A (zh) * | 2022-05-06 | 2022-06-03 | 艾德克斯电子(南京)有限公司 | 一种多机设备组网架构 |
CN114584420B (zh) * | 2022-05-06 | 2022-08-02 | 艾德克斯电子(南京)有限公司 | 一种多机设备组网架构 |
CN115658150A (zh) * | 2022-10-31 | 2023-01-31 | 海光信息技术股份有限公司 | 一种指令分配方法、处理器、芯片及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108279927B (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108279927A (zh) | 可调整指令优先级的多通道指令控制方法及***、控制器 | |
CN109471816B (zh) | 一种基于描述符的pcie总线dma控制器及数据传输控制方法 | |
CN108228492B (zh) | 一种多通道ddr交织控制方法及装置 | |
CN110347635B (zh) | 一种基于多层总线的异构多核微处理器 | |
CN103543954B (zh) | 一种数据存储管理方法和装置 | |
CN100595744C (zh) | 芯片上***集成电路、电子***及在其内传送数据的方法 | |
WO2021207919A1 (zh) | 控制器、存储器件访问***、电子设备和数据传输方法 | |
CN110309088B (zh) | Zynq fpga芯片及其数据处理方法、存储介质 | |
US20220121598A1 (en) | Network-on-chip data processing method and device | |
CN103714026B (zh) | 一种支持原址数据交换的存储器访问方法及装置 | |
US20050289268A1 (en) | Internal bus system | |
CN103793342A (zh) | 一种多通道直接内存存取dma控制器 | |
CN103647807A (zh) | 一种信息缓存方法、装置和通信设备 | |
CN111143257A (zh) | Ddr仲裁控制器、视频缓存装置及视频处理*** | |
US7970960B2 (en) | Direct memory access controller and data transmitting method of direct memory access channel | |
CN102855214B (zh) | 实现数据一致性的方法和一种多核*** | |
CN106959929B (zh) | 一种多端口访问的存储器及其工作方法 | |
EP3777059B1 (en) | Queue in a network switch | |
CN103530245A (zh) | 一种基于fpga的srio互联交换装置 | |
CN109656851A (zh) | 一种时间确定的多路高速总线通道及共享接口 | |
CN103106164A (zh) | 一种高效dma控制器 | |
CN114328350B (zh) | 一种基于axi总线的通讯方法、装置以及介质 | |
US20120166682A1 (en) | Memory mapping apparatus and multiprocessor system on chip platform including the same | |
CN117118828B (zh) | 一种协议转换器、电子设备及一种配置方法 | |
CN102591817B (zh) | 一种多总线桥控制器及其实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Zhangjiang Building 20A, 289 Chunxiao Road, China (Shanghai) Free Trade Pilot Area Applicant after: Xinyuan Microelectronics (Shanghai) Co., Ltd. Applicant after: VIVANTE CORPORATION Address before: 201203 Zhangjiang Building 20A, 560 Songtao Road, Zhangjiang High-tech Park, Pudong New Area, Shanghai Applicant before: VeriSilicon Microelectronics (Shanghai) Co., Ltd. Applicant before: VIVANTE CORPORATION |
|
GR01 | Patent grant | ||
GR01 | Patent grant |