CN117369870A - 一种子实时处理器、实时处理器和系统级芯片 - Google Patents
一种子实时处理器、实时处理器和系统级芯片 Download PDFInfo
- Publication number
- CN117369870A CN117369870A CN202210768628.0A CN202210768628A CN117369870A CN 117369870 A CN117369870 A CN 117369870A CN 202210768628 A CN202210768628 A CN 202210768628A CN 117369870 A CN117369870 A CN 117369870A
- Authority
- CN
- China
- Prior art keywords
- instruction
- unit
- time
- sub
- processor
- 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.)
- Pending
Links
- 230000002093 peripheral effect Effects 0.000 claims description 53
- 238000012545 processing Methods 0.000 claims description 32
- 230000009191 jumping Effects 0.000 claims description 12
- 238000001514 detection method Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 14
- 238000000034 method Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000010977 unit operation Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 101000823089 Equus caballus Alpha-1-antiproteinase 1 Proteins 0.000 description 1
- 101000651211 Homo sapiens Transcription factor PU.1 Proteins 0.000 description 1
- 102100027654 Transcription factor PU.1 Human genes 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- 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/30098—Register arrangements
-
- 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
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本发明公开了一种子实时处理器、实时处理器和系统级芯片。该子实时处理器包括:控制单元,用于生成对应的控制信号发送到各其他单元;指令预取单元,用于获取待执行指令发送到执行单元;执行单元,用于获取待执行指令对应的设定间隔时间发送到比较单元,以及在接收到启动执行信号时,执行待执行指令;间隔时间计数单元,用于基于时间基准脉冲计数,并获取当前间隔时间计数值发送到比较单元;比较单元,用于在检测到设定间隔时间与当前间隔时间计数值相等时,生成启动执行信号发送到执行单元。本实施例的技术方案,通过采用间隔时间计数单元,可以实现对指令的定时执行,可以提升指令执行的时间精准度和实时性。
Description
技术领域
本发明涉及芯片设计技术领域,尤其涉及一种子实时处理器、实时处理器和系统级芯片。
背景技术
系统级芯片除了需要对采集的数据信号进行运算处理,通常还需要对芯片外围器件进行控制,而随着对低延时的要求越来越高,如何使系统级芯片具备对外围器件的精准控制能力,正逐渐成为芯片设计领域的重点研究方向之一。
目前,通常采用现有的数字信号处理器和通用处理器进行对外围器件的实时控制。然而,对于数字信号处理器和通用处理器,由于其主要采用面向运算的流水线设计,故指令从取指到交付需要经过若干时钟周期,且对外设或片上模块的中断响应的处理时间也较长。此外,由于其主要通过片上复杂总线实现对片上模块和外设的控制,且控制所采用的定时器通常连接在芯片总线上,而芯片总线会被多个模块占用,故导致获取的定时时间的精准度较低。因此,采用数字信号处理器或者通用处理器对外围器件进行控制的时间精准度较低,实时性较差。
发明内容
本发明提供了一种子实时处理器、实时处理器和系统级芯片,可以实现准时启动,可以实现对指令的定时执行,可以提升指令执行的时间精准度和实时性,可以提升对片上模块进行控制的时间精准度。
根据本发明的一方面,提供了一种子实时处理器,包括控制单元、指令预取单元、间隔时间计数单元、比较单元和执行单元,所述指令预取单元分别与所述执行单元和所述控制单元通信连接,所述间隔时间计数单元通过所述比较单元与所述执行单元通信连接,所述执行单元与所述控制单元通信连接;
所述控制单元,用于在检测到上电复位或者模块软件复位时进入空闲状态;在检测到子实时处理器被使能时,由空闲状态跳转到取指令状态,并生成取指令控制信号发送到所述指令预取单元;在检测到所述指令预取单元发送的取指令完成信号时,由取指令状态跳转到执行状态,并生成指令执行控制信号发送到所述执行单元;在检测到所述执行单元发送的执行完成信号时,由执行状态跳转到取指令状态;在取指令状态或者执行状态检测到寄存器的子实时处理器不使能指令时跳转到空闲状态;
所述指令预取单元,用于在接收到所述控制单元发送的取指令控制信号时,获取待执行指令,并将所述待执行指令发送到所述执行单元;
所述执行单元,用于在接收到所述控制单元发送的指令执行控制信号时,获取待执行指令对应的设定间隔时间发送到所述比较单元;在接收到所述比较单元发送的所述待执行指令对应的启动执行信号时,执行所述待执行指令,以及在所述待执行指令执行完成后,生成执行完成信号发送到所述控制单元;
所述间隔时间计数单元,用于基于时间基准信号进行时间间隔计数,以获取当前间隔时间计数值,并将所述当前间隔时间计数值发送到所述比较单元;
所述比较单元,用于对所述执行单元发送的所述待执行指令对应的设定间隔时间和所述间隔时间计数单元发送的所述当前间隔时间计数值进行数值比较,若检测到所述设定间隔时间与所述当前间隔时间计数值相等,则生成所述待执行指令对应的启动执行信号发送到所述执行单元。
根据本发明的另一方面,提供了一种实时处理器,包括至少一个本发明任一实施例所述的子实时处理器、总线从设备接口和寄存器,所述总线从设备接口通过所述寄存器分别与各所述子实时处理器通信连接;
所述总线从设备接口,用于接收寄存器配置指令,并将所述寄存器配置指令转发至所述寄存器;
所述寄存器,用于根据所述寄存器配置指令进行寄存器状态设置,以获取当前寄存器状态;
各所述子实时处理器,用于根据所述寄存器的当前寄存器状态进行指令处理。
根据本发明的另一方面,提供了一种系统级芯片,包括本发明任一实施例所述的实时处理器。
本发明实施例的技术方案,通过控制单元在不同状态下生成对应的控制信号发送至各其他单元,以控制各其他单元进行指令读取和执行,并通过指令预取单元获取待执行指令;之后,通过执行单元获取待执行指令对应的设定间隔时间,并通过间隔时间计数单元获取当前间隔时间计数值;进一步的,通过比较单元在检测到设定间隔时间与当前间隔时间计数值相等时,生成待执行指令对应的启动执行信号;最终,通过执行单元根据待执行指令对应的启动执行信号,执行待执行指令;通过采用间隔时间计数单元,可以实现对定时时间的准确获取,可以实现对指令的定时执行,从而可以提升指令执行的时间精准度和实时性,可以提升对片上模块进行控制的时间精准度。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是根据本发明实施例一提供的一种子实时处理器的结构示意图;
图1B是根据本发明实施例一提供的另一种子实时处理器的结构示意图;
图2A是根据本发明实施例二提供的一种实时处理器的结构示意图;
图2B是根据本发明实施例二提供的另一种实时处理器的结构示意图;
图2C是根据本发明实施例二提供的另一种实时处理器的结构示意图;
图2D是根据本发明实施例二提供的另一种实时处理器的结构示意图;
图2E是根据本发明实施例二提供的另一种实时处理器的结构示意图;
图2F是根据本发明实施例二提供的另一种实时处理器的结构示意图;
图2G是根据本发明实施例二提供的另一种实时处理器的结构示意图;
图2H是根据本发明实施例二提供的另一种实时处理器的结构示意图;
图3是根据本发明实施例三提供的一种系统级芯片的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“目标”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1A为本发明实施例一提供了一种子实时处理器的结构图,子实时处理器100,可以包括控制单元110、指令预取单元120、间隔时间计数单元130、比较单元140和执行单元150,指令预取单元120分别与执行单元150和控制单元110通信连接,间隔时间计数单元130通过比较单元140与执行单元150通信连接;执行单元150与控制单元110通信连接。
所述控制单元110,用于在检测到上电复位或者模块软件复位时进入空闲状态;在检测到子实时处理器100被使能时,由空闲状态跳转到取指令状态,并生成取指令控制信号发送到所述指令预取单元120;在检测到所述指令预取单元120发送的取指令完成信号时,由取指令状态跳转到执行状态,并生成指令执行控制信号发送到所述执行单元150;在检测到所述执行单元150发送的执行完成信号时,由执行状态跳转到取指令状态;在取指令状态或者执行状态检测到寄存器的子实时处理器不使能指令时跳转到空闲状态。
在本实施例中,控制单元110用于产生整个状态机,包括空闲状态、取指令状态和执行状态,控制单元110可以在各状态之间进行状态跳转。具体的,在执行指令的过程中;首先,在上电复位或者模块软件复位之后,控制单元110进入空闲状态;然后,在当前的子实时处理器100被使能时,控制单元110由空闲状态跳转到取指令状态;之后,若接收到指令预取单元120发送的取指令完成信号,则表示已经完成对当前的待执行指令的取指,此时,控制单元110可以由取指令状态跳转到执行状态;进一步的,若检测到执行单元150发送的执行完成信号,则表示当前的待执行指令已经执行完成,控制单元110此时可以由执行状态跳转回取指令状态,以重新开始取指。
之后,控制单元110可以在取指令状态和执行状态之间反复跳转,直至检测到寄存器配置的子实时处理器不使能指令,即当前的子实时处理器100变为未被使能状态,控制单元110跳转回空闲状态。
其中,子实时处理器100被使能,表示子实时处理器100被激活,并开始处理待执行的指令。取指令控制信号,可以是控制单元110生成的用于指示指令预取单元120开始进行取指的信号;取指令完成信号,可以是指令预取单元120生成的用于指示当前的取指已经完成的信号。指令执行控制信号,可以是控制单元110生成的用于指示执行单元150开始执行当前的待执行指令的信号;对应的,执行完成信号,可以是执行单元150生成的用于指示当前的待执行指令已经执行完成的信号。
在本实施例中,可以通过中央处理器(Central processing unit,CPU)配置使能寄存器(例如,RTEP_EN)中子实时处理器100对应的比特位,以使子实时处理器100处于使能状态。或者,可以配置子实时处理器100对应的启动时间寄存器(例如,RTEPx_STR_TIME),以通过硬件逻辑在固定时间使能该子实时处理器100;其中,时间可以基于指定的启动定时器。
在本实施例中,可以在子实时处理器启动控制寄存器(例如,RTEPx_STR_CTRL)中设置TIMER_SEL多比特位,进而通过设置该多比特位的数值,以指定采用的启动定时器。具体的,实时获取指定的启动定时器的数值,并将该数值与启动时间寄存器进行比较,当两者相等时,即可以控制该子实时处理器100进入使能状态,即启动该子实时处理器100。
此外,还可以周期启动子实时处理器100。具体的,在子实时处理器启动控制寄存器中设置周期中断触发子实时处理器启动使能比特(例如,CYC_TRG_EN),当该比特为使能状态(典型的,数值为1)时,则硬件逻辑在周期中断有效时,控制子实时处理器100进入使能状态。可选的,还可以在子实时处理器启动控制寄存器中设置周期中断选择多比特位(例如,CYC_TRG_SEL),以在多个周期中断中选择一个周期中断。其中,周期中断可以由指定的启动定时器周期产生,一个启动定时器可以存在多个周期中断。
所述指令预取单元120,用于在接收到所述控制单元110发送的取指令控制信号时,获取待执行指令,并将所述待执行指令发送到所述执行单元150。
其中,指令预取单元120,可以根据控制单元110的取指令控制信号,在执行完一条指令后取下一条指令,由于每一条指令设置有执行间隔时间,所以指令预取单元120可以按照指令的执行间隔时间来取指令。可选的,指令预取单元120可以按照指令地址递增的原则,逐个读取待执行指令,或者,可以按照指定的指令地址读取对应的待执行指令。
在本实施例中,子实时处理器100可以采用事件组的形式进行事件处理。其中,一个事件组可以包括多个待执行指令,一个待执行指令对应一种事件操作。具体的,子实时处理器100在被使能之后,可以开始获取并执行待执行指令,当获取到不使能指令时,变更为不使能状态,则表示一个事件组处理完成。
可选的,子实时处理器100的事件处理模式可以包括单事件组模式和多事件组模式。具体的,对于每一个子实时处理器100,可以预先设置对应的多事件组工作模式使能寄存器(例如,RTEPx_MEVTG_ENA)。当根据多事件组工作模式使能寄存器,确定多事件组模式不使能时,子实时处理器100工作在单事件组模式,即只处理一个事件组。此时,指令预取单元120可以依次读取该事件组的各指令,并由执行单元150执行各指令。
此外,当根据多事件组工作模式使能寄存器,确定多事件组模式使能时,子实时处理器100可以轮询处理多个事件组。在每个事件组的处理过程中,可以将最后的不使能指令作为当前事件组的结束处理条件,但不会执行不使能操作,即仍然保持该子实时处理器100处于使能状态。最终,当检测到多事件组模式变更为不使能时,在当前事件组的最后一个不使能指令处理结束之后,子实时处理器100结束对各事件组的轮询处理,进入单事件组模式,并变更为不使能状态。
在本实施例中,针对每一个事件组可以设置对应的一组事件组配置寄存器,例如,可以包括RTEPx_MEVTGn_IRAM_STR_ADDR寄存器、RTEPx_MEVTGn_IRAM_STR_VALID寄存器、RTEPx_MEVTGn_IRAM_STR_MASK寄存器、RTEPx_MEVTGn_CANCEL寄存器和RTEPx_MEVTGn_WORK_STAT寄存器。其中,RTEPx_MEVTGn_IRAM_STR_ADDR寄存器,可以用于存储事件组包括的待执行指令的起始地址,其中,n可以表示事件组的索引,例如,RTEPx_MEVTG1_IRAM_STR_VALID,可以表示第一个事件组对应的寄存器。
具体的,当检测到当前事件组对应的RTEPx_MEVTGn_IRAM_STR_VALID寄存器有效,且RTEPx_MEVTGn_IRAM_STR_MASK寄存器为非屏蔽时,开始当前事件组的取指,开始取指后,将RTEPx_MEVTGn_IRAM_STR_VALID寄存器清零,并在当前事件组的执行过程中将RTEPx_MEVTGn_WORK_STAT寄存器置1,表示正在处理当前事件组。此外,在当前事件组的执行过程中需要监测RTEPx_MEVTGn_CANCEL寄存器,如果发现为取消有效,则在执行完当前指令之后,取消执行当前事件组的剩余待执行指令,并自动轮询到下一组事件组配置寄存器。
此外,若对当前事件组的处理正常结束,则将RTEPx_MEVTGn_WORK_STAT寄存器设置为0;若由于被软件取消而结束,则将寄存器设置为2;若由于指令处理异常而结束,则将寄存器设置为3;若被屏蔽则将寄存器设置为4。其中,正常结束,是指一次事件组取指到不使能指令。
其次,若检测到当前事件组对应的RTEPx_MEVTGn_IRAM_STR_VALID寄存器有效,且RTEPx_MEVTGn_IRAM_STR_MASK寄存器为屏蔽,则可以忽略当前事件组,并直接跳转到下一事件组。
可选的,在多事件组模式处于使能状态时,还可以设置一个事件组轮询计数器(例如,rtepx_mevtg_cnt),其复位值为0。具体的,子实时处理器100上电后,检测第一个事件组对应的事件组配置寄存器,当检测到RTEPx_MEVTG1_IRAM_STR_VALID寄存器的值为有效值(例如,1)时,如果RTEPx_MEVTG1_IRAM_STR_MASK寄存器为非屏蔽,则rtepx_mevtg_cnt加1。此时,将RTEPx_MEVTG1_WORK_STAT寄存器置为工作状态,表示在处理第一事件组,子实时处理器100开始取指。等结束对第一事件组的处理后,继续检测RTEPx_MEVTG2_IRAM_STR_VALID寄存器的值是否为有效值。
在另一种场景下,如果复位后,检测到RTEPx_MEVTG1_IRAM_STR_VALID寄存器的值为有效值,但RTEPx_MEVTG1_IRAM_STR_MASK寄存器为屏蔽,则rtepx_mevtg_cnt加1,并将RTEPx_MEVTG1_WORK_STAT寄存器置为屏蔽状态,子实时处理器100不取指。然后在检测到RTEPx_MEVTG2_IRAM_STR_VALID寄存器的值为1,且RTEPx_MEVTG2_IRAM_STR_MASK寄存器为非屏蔽,则rtepx_mevtg_cnt加1变为2,并将RTEPx_MEVTG2_WORK_STAT寄存器置为工作状态,表示正在处理第二事件组。
之后,子实时处理器100开始取指,直至第二事件组处理结束。进一步的,重复上述步骤,直至完成对全部事件组的处理。其中,在处理第一事件组期间,事件组轮询计数器的值为1,在处理第二事件组期间,事件组轮询计数器的值为2。由此,通过事件组轮询计数器,可以实现对处理的事件组数量的记录。
可选的,还可以设置事件组状态寄存器,例如,RTEPx_STATUS.cur_mevtg_cnt_stat,以存储子实时处理器100当前正在处理的事件组的状态,例如,若当前处理的是第一事件组,则RTEPx_STATUS.cur_mevtg_cnt_stat=1。
在本实施例中,通过预先为一个子实时处理器100配置多个事件组,可以减少子实时处理器100完成中断的响应时间,可以支持提前配置指令和数据,可以减少调度的延时时间,从而可以提高实时性,同时可以支持软件动态撤销没有执行的事件或事件组。
所述执行单元150,用于在接收到所述控制单元110发送的指令执行控制信号时,获取待执行指令对应的设定间隔时间发送到所述比较单元140;在接收到所述比较单元140发送的所述待执行指令对应的启动执行信号时,执行所述待执行指令,以及在所述待执行指令执行完成后,生成执行完成信号发送到所述控制单元110。
其中,设定间隔时间,可以是在指令中预先设置的指令执行间隔时间,例如,时间间隔为n,表示间隔时间为n个时钟周期,时钟周期是指某个选定的定时器的时钟的周期。对于设置有设定间隔时间的待执行指令,其执行时间点为取指令解析后等待设定间隔时间再执行。可选的,若对待执行指令进行解析后未获取对应的设定间隔时间,则可以直接对该待执行指令进行处理,而不需额外的时间等待。
所述间隔时间计数单元130,用于基于时间基准信号进行时间间隔计数,以获取当前间隔时间计数值,并将所述当前间隔时间计数值发送到所述比较单元140;其中,时间基准信号,是间隔时间计数单元130的计数单位,可以为当前子实时处理器100所绑定的定时器的基准时间脉冲。
可选的,间隔时间计数单元130,可以包括绝对计时工作模式和相对计时工作模式两种工作模式。其中,对于绝对计时工作模式,在一条带有设定间隔时间的待执行指令执行结束之后,间隔时间计数单元130不清零,进行连续计数。而对于相对计时工作模式,在一条带有设定间隔时间的待执行指令执行结束之后,间隔时间计数单元130清零。在绝对计时工作模式下,设定间隔时间可以是指令执行时间点;而在相对计时工作模式下,设定间隔时间可以是指令执行间隔时间。
其中,控制单元110可以生成对应的控制信号发送到间隔时间计数单元130,以控制间隔时间计数单元130进行间隔时间计数或者清零计数。
在本实施例中,间隔时间计数单元130的工作模式可以通过空操作指令动态设置,也可以通过静态寄存器,例如,子实时处理器x的启动控制寄存器(例如,RTEPx_STR_CTRL)的间隔时间计数单元工作模式比特位(例如,DETA_CNT_MODE)进行设置。CPU可以通过设置该比特位,以改变间隔时间计数单元130的工作模式。
所述比较单元140,用于对所述执行单元150发送的所述待执行指令对应的设定间隔时间和所述间隔时间计数单元130发送的所述当前间隔时间计数值进行数值比较,若检测到所述设定间隔时间与所述当前间隔时间计数值相等,则生成所述待执行指令对应的启动执行信号发送到所述执行单元150。
具体的,当待执行指令具有对应的设定间隔时间时,此时,比较单元140,具体用于对设定间隔时间和当前间隔时间计数值进行数值比较,以判断是否达到设定间隔时间。之后,在检测到当前间隔时间计数值等于设定间隔时间时,即可生成该待执行指令对应的启动执行信号发送到执行单元150,以使执行单元150开始执行该待执行指令。
在本实施例中,通过采用间隔时间计数单元130获取定时时间,可以降低获取的定时时间延迟,可以提升获取的定时时间的精准度,从而可以实现对待执行指令的定时执行,可以提升指令执行的实时性和时间准确度。
可选的,如图1B所示,子实时处理器100,还可以包括地址生成单元160、仲裁单元170和指令存储单元180,地址生成单元160分别与执行单元150、仲裁单元170和控制单元110通信连接,指令存储单元180通过仲裁单元170分别与地址生成单元160和指令预取单元120通信连接;
所述执行单元150,还用于当检测到所述指令预取单元120发送的待执行指令的指令类型为地址跳转指令时,获取所述待执行指令对应的跳转地址发送到所述地址生成单元160,并生成跳转控制信号分别发送到所述地址生成单元160和所述指令预取单元120。
其中,跳转地址,可以是当前的地址跳转指令所指定的下一个待执行指令的地址;跳转控制信号,可以是执行单元150生成的用于指示进行地址跳转的信号。
在本实施例中,当执行地址跳转指令时,会跳转到设定的地址进行取指。其中,地址跳转指令的数据结构可以如表1所示。其中,对于跳转地址参数,0表示指令存储单元180第1条指令地址,1表示指令存储单元180第2条指令地址,以此类推,63表示指令存储单元180第64条指令地址。
表1地址跳转指令的数据结构
31 28 | 27 20 | 19 14 | 13 0 | |
地址跳转 | 自定义 | 跳转地址 | 无 | 间隔时间 |
其中,地址跳转指令,可以包括跳转地址参数。当待执行指令为地址跳转指令时,表示下一个需要处理的待执行指令,为该跳转地址对应的指令。
所述地址生成单元160,用于在接收到仲裁单元170发送的指令存储单元加载完成信号时,根据顺序预取指地址获取指令取指地址;在接收到所述执行单元150发送的跳转地址和跳转控制信号时,根据所述跳转地址获取指令取指地址;将指令取指地址发送到所述仲裁单元170。其中,顺序预取指地址,可以是顺序递增的取指地址;例如,当前的待执行指令的地址为i,则下一个顺序预取指地址即为i+1,而初始的预取指地址可以通过寄存器进行预先设置。
在本实施例中,仲裁单元170可以根据指令存储单元180的读写完成时序,生成指令存储单元加载完成信号分别发送到地址生成单元160和指令预取单元120。
具体的,在进行取指时,在一般场景下,由地址生成单元160生成顺序预取指地址作为指令取指地址发送到仲裁单元170;同时指令预取单元120生成指令预取请求信号发送到仲裁单元170。此时,指令预取请求信号仅为一个指示信号,即告知仲裁单元170当前需要进行取指,而具体的指令地址由地址生成单元160产生。指令预取单元120可以逐个获取地址递增的待执行指令。
然而,若当前的待执行指令为地址跳转指令,则地址生成单元160使用跳转地址作为指令取指地址,而不使用顺序递增地址。故指令预取单元120在发送指令预取请求信号之后,可以获取与该跳转地址对应的待执行指令。
所述指令预取单元120,用于在接收到所述控制单元110发送的取指令控制信号、仲裁单元170发送的存储单元加载完成信号和所述执行单元150发送的跳转控制信号时,生成指令预取请求信号发送到所述仲裁单元170,接收所述仲裁单元170反馈的待执行指令。
在本实施例中,当指令预取单元120接收到仲裁单元170发送的存储单元加载完成信号时,表示指令预取单元120已经成功获取当前的待执行指令;之后,当接收到执行单元150发送的跳转控制信号时,表示地址跳转指令已经执行完成;进一步的,当接收到控制单元110发送的取指令控制信号时,指令预取单元120可以生成指令预取请求信号发送到仲裁单元170,以请求获取下一个待执行指令。
所述仲裁单元170,用于生成指令存储单元加载完成信号发送到所述地址生成单元160和所述指令预取单元120;在同时接收到所述地址生成单元160发送的指令取指地址、所述指令预取单元120发送的指令预取请求信号和总线从设备接口发送的指令存储单元读写请求信号时,将所述指令存储单元读写请求信号、所述指令取指地址和所述指令预取请求信号依次发送到所述指令存储单元180;将所述指令存储单元180反馈的所述指令存储单元读写请求信号对应的已存指令发送到所述总线从设备接口进行转发,以及将所述指令存储单元反馈的所述指令取指地址对应的已存指令发送到所述指令预取单元120。
其中,指令存储单元读写请求信号,可以是CPU生成的对指令存储单元180中已存指令进行读或者写操作的请求信号;典型的,指令存储单元读写请求信号,可以包括片选内容(用于指示该请求信号对应哪一个指令存储单元)、操作类型(例如,指令读取操作或者指令写入操作)、地址和写数据等。
在本实施例中,当仲裁单元170同时接收到指令存储单元读写请求信号和指令预取请求信号时,仲裁单元170对两个请求信号的优先级进行仲裁,并将仲裁后的指令存储单元读写请求信号首先发送到指令存储单元180,然后将指令预取请求信号和指令取指地址发送到指令存储单元180。在本实施例中,指令存储单元读写请求信号的优先级可以高于指令预取请求信号。
其中,当指令存储单元读写请求信号对应指令读取操作时,仲裁单元170可以接收指令存储单元180反馈的与该指令存储单元读写请求信号对应的已存指令,并将该已存指令转发至总线从设备接口。此外,仲裁单元170可以接收指令存储单元180反馈的与指令取指地址对应的已存指令,并将该已存指令转发至指令预取单元120。
所述指令存储单元180,用于根据所述指令存储单元读写请求信号对已存指令进行更新,或者获取所述指令存储单元读写请求信号对应的已存指令发送到所述仲裁单元170;以及获取所述指令取指地址对应的已存指令发送到所述仲裁单元170。
具体的,当指令存储单元读写请求信号对应指令写入操作时,指令存储单元180可以根据指令存储单元读写请求信号中的地址和写指令,将该写指令写入存储器;或者,当指令存储单元读写请求信号对应指令读取操作时,指令存储单元180可以读取与该地址对应的已存指令,并将该已存指令发送到仲裁单元170。
在本实施例中,每一个子实时处理器100可以有一个专用的指令存储单元180。在指令存储单元180中,每一个已存指令对应一个存储地址,在对已存指令进行查找时,可以采用存储地址作为索引,以查找匹配的已存指令。典型的,指令存储单元180,可以是随机存取存储器(Random access memory,RAM)。
本发明实施例的技术方案,通过控制单元在不同状态下生成对应的控制信号发送至各其他单元,以控制各其他单元进行指令读取和执行,并通过指令预取单元获取待执行指令;之后,通过执行单元获取待执行指令对应的设定间隔时间,并通过间隔时间计数单元获取当前间隔时间计数值;进一步的,通过比较单元在检测到设定间隔时间与当前间隔时间计数值相等时,生成待执行指令对应的启动执行信号;最终,通过执行单元根据待执行指令对应的启动执行信号,执行待执行指令;通过采用间隔时间计数单元,可以实现对定时时间的准确获取,可以实现对指令的定时执行,从而可以提升指令执行的时间精准度和实时性,可以提升对片上模块进行控制的时间精准度。
实施例二
图2A为本发明实施例二提供了一种实时处理器的结构图,实时处理器200,可以包括至少一个本发明实施例一所述的子实时处理器100、总线从设备接口210和寄存器220,总线从设备接口210可以通过寄存器220分别与各子实时处理器100通信连接;
所述总线从设备接口210,用于接收寄存器配置指令,并将所述寄存器配置指令转发至所述寄存器220;其中,总线从设备接口210,用于接收来自CPU的寄存器配置。寄存器配置指令,可以是CPU生成的,用于对实时处理器200的寄存器状态进行设置的指令信息。
在本实施例中,实时处理器200可以通过总线从设备接口210接收CPU的各种配置指令,例如,寄存器配置指令、事件组配置指令等,以协助CPU实现对片上模块和外设的控制。因此,本实施例的实时处理器200,可以作为CPU的辅助处理器,以使得系统级芯片可以具备对外围器件的实时控制能力。
所述寄存器220,用于根据所述寄存器配置指令进行寄存器状态设置,以获取当前寄存器状态。其中,寄存器220,可以包括前述的待处理事件组对应的各寄存器。在一个具体的例子中,当寄存器220为子实时处理器启动时间寄存器时,CPU可以将预先设置的启动时间提前通过总线从设备接口210发送到寄存器220,寄存器220可以根据接收的启动时间对相应的比特位的值进行设置。由此,当到达预先设置的启动时间时,寄存器220可以控制对应的子实时处理器100进行定时启动。
在本实施例中,通过设置不同的寄存器状态,可以实现对子实时处理器100的使能、工作模式的控制,以及事件处理过程的记录等。典型的,针对每个子实时处理器100,可以分别设置对应的状态寄存器,用于指示当前正在欲取指的指令地址、当前正在等待执行或执行的指令地址、子实时处理器100是未使能状态还是在正常工作状态,以及子实时处理器100当前正常工作时的具体工作状态。
上述设置的好处在于,可以避免现有技术中总线传输导致的定时时延,可以实现对子实时处理器100的精准启动,进一步的,通过子实时处理器100中的间隔时间计数单元130,可以实现对待处理事件的精准处理。
各所述子实时处理器100,用于根据所述寄存器220的当前寄存器状态进行指令处理。具体的,子实时处理器100,可以根据各寄存器220的当前寄存器状态,确定当前的事件组模式和待处理的各事件组;此外,还可以根据当前寄存器状态,确定每个事件组的处理流程。
本发明实施例的技术方案,通过总线从设备接口接收寄存器配置指令,并通过寄存器根据寄存器配置指令进行寄存器状态设置,以获取当前寄存器状态;最终,通过各子实时处理器根据当前寄存器状态进行指令处理;通过采用寄存器和子实时处理器,可以实现对子实时处理器的精准启动,并可以提升事件处理的时间精准度,从而可以提升对片上模块和外设进行控制的时间精准度。
可选的,如图2B所示,实时处理器200,还可以包括第一仲裁器230和指令存储器240,指令存储器240通过第一仲裁器230分别与各子实时处理器100通信连接;其中,指令存储器240,可以是各子实时处理器100通用的指令存储器240。
各所述子实时处理器100,还用于生成指令预取请求信号发送到所述第一仲裁器,以及在接收到所述第一仲裁器反馈的待执行指令时,执行所述待执行指令;
所述第一仲裁器230,用于在检测到各所述子实时处理器100发送的指令预取请求信号满足第一预设冲突检测条件时,根据各所述子实时处理器100的优先级,按照优先级从高到低的顺序依次将各所述子实时处理器100发送的指令预取请求信号转发至所述指令存储器240,以及接收所述指令存储器240反馈的待执行指令,并将所述待执行指令转发至对应的子实时处理器100;所述指令存储器240,用于在接收到所述第一仲裁器230转发的指令预取请求信号时,获取所述指令预取请求信号对应的待执行指令发送到所述第一仲裁器230。
其中,第一预设冲突检测条件,可以是预先设置的用于判断各指令预取请求信号之间是否存在冲突的条件信息,例如,可以是同时接收到多个指令预取请求信号,或者在较短时间内接收到多个指令预取请求信号。
在本实施例中,各子实时处理器100可以通过指令预取单元120向第一仲裁器230发送指令预取请求信号;此外,还可以通过地址生成单元160同时向第一仲裁单元130发送指令取指地址,指令取指地址与指令预取请求信号一一对应。
在一个具体的例子中,对于各子实时处理器100共享的指令存储器240,当存在多个子实时处理器100同时访问时,即存在多个子实时处理器100同时向第一仲裁器230发送指令预取请求信号,此时第一仲裁器230可以对各子实时处理器100的优先级进行判断,并按照优先级从高到低的顺序依次将各子实时处理器100的指令预取请求信号转发至指令存储器240。其中,各子实时处理器100的优先级可以预先设置,例如,序号越小的子实时处理器100优先级越高。典型的,可以通过寄存器220对各实时处理器100的优先级进行设置。
上述设置的好处在于,多个子实时处理器100可以并行工作,且通过配置仲裁器,可以根据优先级对多个子实时处理器100冲突进行处理,可以适用于复杂的应用场景。
可选的,如图2C所示,总线从设备接口210还可以通过第一仲裁器230与指令存储器240通信连接;所述总线从设备接口210,还用于获取指令存储器读写请求信号,并将所述指令存储器读写请求信号转发至所述第一仲裁器230,以及对所述第一仲裁器230转发的所述指令存储器读写请求信号对应的已存储指令进行外部转发;
所述第一仲裁器230,还用于接收所述总线从设备接口210转发的指令存储器读写请求信号,并在将当前待执行指令转发至对应的子实时处理器100之后,将所述指令存储器读写请求信号转发至所述指令存储器240,以及将所述指令存储器240反馈的所述指令存储器读写请求信号对应的已存储指令转发到所述总线从设备接口210;所述指令存储器240,还用于根据所述指令存储器读写请求信号对已存储指令进行更新,或者获取所述指令存储器读写请求信号对应的已存储指令发送到所述第一仲裁器230。
其中,指令存储器读写请求信号,可以是针对指令存储器240中已存储指令的读取操作,或者新指令的写入操作的请求信号。
在一个具体的例子中,当子实时处理器100开始逐条读取指令并执行的期间,CPU可以通过总线从设备接口210和第一仲裁器230,在子实时处理器100访问指令存储器240的间隙访问指令存储器240,以对已存储指令进行读取或者改写,以实现对已配置指令的动态修改。当CPU为针对指令存储器240的连续访问时,即第一仲裁器230连续获取多个指令存储器读写请求信号,此时相较于指令预取请求信号,指令存储器读写请求信号的优先级更高。
因此,在将当前子实时处理器100所请求的待执行指令转发至当前子实时处理器100之后,第一仲裁器230可以按照接收时间,依次将各指令存储器读写请求信号发送到指令存储器240,并对其他子实时处理器100发送的指令预取请求信号进行缓存。当CPU对指令存储器240的连续访问结束之后,第一仲裁器230可以将缓存的各子实时处理器100的指令预取请求信号发送到指令存储器240。
可选的,如图2D所示,实时处理器200,还可以包括第二仲裁器250、外设配置接口260和通用输出接口270,外设配置接口260和通用输出接口270分别通过第二仲裁器250与各子实时处理器100通信连接;各子实时处理器100,还用于执行通用输出操作指令,以生成通用输出信号,并将通用输出信号发送到第二仲裁器250;以及执行外设接口操作指令,以生成外设数据输出控制信号,并将外设数据输出控制信号发送到第二仲裁器250。
其中,通用输出操作指令的数据结构可以如表2所示。通用输出操作指令可以为32位数据,可以用于设置输出信号的电平。具体的,当模式选择位的值为0时,表示该通用输出(General Purpose Output,GPO)操作为单根设置模式,此时最大支持128个通用输出,128个通用输出可以分为8组,每组16个,每次可以设置1位输出。在设置输出后,更新可以分为两种模式,一种是立即更新(对应值为0),即执行了此指令之后,对应的输出管脚将立即更新为设定值。另一种是等待更新(对应值为1),即在此指令执行之后,只有等到更新操作指令执行了才会将输出管脚更新为设定值,此更新模式主要用于多个输出同时赋值。
表2通用输出操作指令的数据结构
此外,当模式选择位的值为1时,表示该GPO操作为多根设置模式,此时最大可支持同时设置8根GPO管脚的电平。这种模式下,最大可以支持64个通用输出,即每组8根,最多8组。多根设置模式下组的含义与单根设置模式下组的含义不同,在单根设置模式下每组包含16根GPO管脚,而在多根设置模式下每组只包含8根GPO。而这两种模式的组选择关系为:单根设置模式的组号=多根设置模式的组号/2,例如,多根设置模式下的第0组和第1组,分别对应单根设置模式下第0组的低8位和高8位。
此外,在多根设置模式下,如果只需要同时设置某几根GPO管脚的输出电平,则可以通过设置寄存器RTEP_GPO_MASKx,以将不需要设置的GPO屏蔽。可选的,还可以设置子实时处理器通用输出设置寄存器x(例如,RTEP_GPOx),以配置每个通用输出信号对应的功能,其中,x表示单根设置模式的组号。
所述第二仲裁器250,用于在检测到各子实时处理器100发送的通用输出信号满足第二预设冲突检测条件时,在各通用输出信号中筛选得到优先级最高的目标通用输出信号,并将目标通用输出信号发送到通用输出接口270;以及在检测到各子实时处理器100发送的外设数据输出控制信号满足第三预设冲突检测条件时,根据各子实时处理器100的优先级,按照优先级从高到低的顺序依次将各外设数据输出控制信号发送到外设配置接口260;
通用输出接口270,用于接收第二仲裁器250转发的目标通用输出信号,并对目标通用输出信号进行输出;外设配置接口260,用于接收第二仲裁器250转发的外设数据输出控制信号,并对外设数据输出控制信号进行输出。
其中,第二预设冲突检测条件,可以是预先设置的用于判断多个通用输出信号是否存在冲突的条件信息。第三预设冲突检测条件,可以是预先设置的用于判断多个外设数据输出控制信号是否存在冲突的条件信息。
在本实施例中,每个子实时处理器100都可以通过执行GPO指令以生成通用输出信号,从而设置GPO的电平;此外,通过设置寄存器RTEP_GPOx也可立即设置GPO电平。如果在同一时刻,存在多种不同方式设置同一根GPO管脚,则会产生GPO冲突中断,可以将其记录在中断状态寄存器中。产生冲突中断时,第二仲裁器250可以对各设置请求进行优先级判断,只有最高优先级的方式起作用。典型的,寄存器方式优先级可以最高,子实时处理器0次之,子实时处理器N最低。
其中,外设接口操作指令,用于定时将片上的外设接口控制器,例如SPI(SerialPeripheral Interface,串行外设接口)内部存储器中的数据发送出去,以配置实时处理器所在芯片外接的其它芯片。在本实施例中,外设接口操作指令的数据结构可以如表3所示。
表3外设接口操作指令的数据结构
外设接口操作指令,可以用于SPI操作和RFFE(Radio Frequency Front-End,射频前端)操作两种操作。其中,用于SPI操作时,对于发送数据起始地址参数,0表示内部存储器第1个32位的SPI数据,1表示内部存储器第2个32位的SPI数据,2表示内部存储器第3个32位的SPI数据,以此类推;对于发送数据数量参数,0表示不传输数据,1表示传输1个数据,2表示传输2个数据,以此类推;对于SPI控制器选择参数,0表示选择SPI0控制器,1表示选择SPI1控制器。需要说明的是,SPI指令最大支持传输15个数据,如果需要传输更多数据,可以使用多条SPI指令。
其次,当外设接口操作指令用于RFFE操作时,对于RFFE命令帧起始地址参数,0表示内部存储器第1个32位的SPI数据,1表示内部存储器第2个32位的SPI数据,2表示内部存储器第3个32位的SPI数据,以此类推;传输数据数量参数,用于表示RFFE操作序列数量,0表示传输1个序列,1表示传输2个序列,依次类推。
在本实施例中,通过寄存器方式或子实时处理器100的外设接口操作指令都可启动外设接口传输。如果这几种方式同时启动,就会产生外设接口操作冲突中断。在产生该冲突中断时,第二仲裁器250可以按照寄存器方式优先级最高,子实时处理器0次之,子实时处理器N最低的顺序,依次执行外设数据输出控制信号传输。
需要说明的是,对于某一个子实时处理器100,如果连续写入三条外设接口操作指令,而第二条指令执行时第一条指令启动的外设数据输出控制信号传输还未完成,则第二条指令就会进入等待状态。如果在第二条指令等待期间第三条指令到来就会产生外设接口操作冲突中断。而一旦产生该外设接口操作冲突中断,第三条指令将永远无法执行。因此,为了避免这种冲突产生,外设接口操作指令中的设定间隔时间应大于外设数据输出控制信号传输所需的时间。
在本实施例中,子实时处理器100通过执行外设接口操作指令,可以通过外设配置接口260在精确时间控制片上的外设接口模块,从而可以提升对外设进行控制的时间精度。此外,子实时处理器100通过执行通用输出操作指令,可以通过通用输出接口270在精确时间控制片上的通用输入输出模块,从而可以提升对芯片通用输出管脚的控制时间精度。
可选的,如图2E所示,实时处理器200,还可以包括至少一个定时器接口280,各定时器接口280分别与各子实时处理器100通信连接;各定时器接口280,用于获取定时脉冲,并将所述定时脉冲发送到各子实时处理器100;各子实时处理器100,还用于接收各定时器接口280发送的定时脉冲,并根据各定时脉冲进行指令处理。
其中,每一个定时器接口280可以分别与一个或者多个定时器绑定,各定时器可以通过绑定的定时器接口280将各自的定时脉冲发送到对应的子实时处理器100,用于子实时处理器100的启动和快拍指令。当定时器接口280与多个定时器绑定时,若定时器接口280同时接收到多个定时器的定时脉冲,则可以根据各定时器对应的子实时处理器100的优先级,依次将各定时脉冲发送至对应的子实时处理器100。
具体的,子实时处理器100可以选择事件执行期间所使用的定时器的定时脉冲,并将获取的定时脉冲用于间隔时间计数单元130。此外,定时器可以将配置完成的多个周期中断信号发送到实时处理器200,以用于实时处理器200在周期中断触发模式下启动各子实时处理器100。
在本实施例中,子实时处理器100在工作期间所绑定的定时器接口280和定时器可以通过设置寄存器220进行配置,例如,可以设置寄存器RTEPx_STR_CTRL.TM_PULSE_SEL,以为子实时处理器100配置当前的定时器接口280和定时器。
值得注意的是,当子实时处理器100工作在多事件组模式时,不同的事件组可以绑定不同的定时器接口280和定时器,即不同的事件组可以采用不同的定时时间。具体的,子实时处理器100可以在当前定时器的精确时间点读取另一个定时器的时间,以实现两个定时器之间的硬件快拍。
可选的,定时器接口280还可以通过第二仲裁器250与各子实时处理器100通信连接。定时器接口280,还可以用于获取各定时器的定时脉冲,并将各定时脉冲发送到第二仲裁器250;第二仲裁器250,还可以用于在同时接收到多个定时脉冲时,获取各定时脉冲对应的子实时处理器100,并根据各子实时处理器100的优先级,按照优先级从高到低的顺序依次将各定时脉冲发送到对应的子实时处理器100。
上述设置的好处在于,可以减少现有技术中通用处理器通过总线访问定时器的时延,可以实现子实时处理器100基于某个定时器在精确时间启动,可以适用于多种模式共存的复杂应用场景,多个子实时处理器100依据不同的定时器可同时工作,可以满足不同模式下实时控制的要求。
可选的,如图2F所示,实时处理器200,还可以包括片上模块中断接口290、通用处理器中断接口2100和片上模块触发接口2110,片上模块中断接口290分别与各子实时处理100器通信连接,通用处理器中断接口2100和片上模块触发接口2110分别通过第二仲裁器250与各子实时处理器100通信连接;各子实时处理器100,还用于执行触发输出操作指令,以生成触发输出脉冲信号,并将触发输出脉冲信号发送到第二仲裁器250;执行中断操作指令,以生成中断信号,并将中断信号发送到第二仲裁器250;以及接收片上模块中断接口发送的中断控制信号,并执行中断控制信号对应的指令存储器240中的已存储指令;
第二仲裁器250,还用于在同时接收到各子实时处理器100发送的触发输出脉冲信号时,根据各子实时处理器100的优先级,按照优先级从高到低的顺序依次将各触发输出脉冲信号发送到片上模块触发接口2110;以及在同时接收到各子实时处理器100发送的中断信号时,根据各子实时处理器100的优先级,按照优先级从高到低的顺序依次将各中断信号发送到通用处理器中断接口2100;
片上模块触发接口2110,用于将第二仲裁器250发送的触发输出脉冲信号转发至对应的片上模块;通用处理器中断接口2100,用于将第二仲裁器250发送的中断信号转发至对应的通用处理器;片上模块中断接口290,用于接收来自片上模块的中断控制信号,并将中断控制信号转发至对应的子实时处理器100。
在本实施例中,子实时处理器100在输出触发输出脉冲信号和中断信号时,可以先将信号发送到仲裁器250;仲裁器250若在同一时间仅接收到一个触发输出脉冲信号或者中断信号,则可以直接将当前的信号转发至对应的接口,由对应的接口发送到对应的片上模块或者通用处理器。而若在同一时间接收到多个子实时处理器100发送的触发输出脉冲信号,则可以对各信号进行仲裁,按照各子实时处理器100的优先级,依次发送各信号到片上模块触发接口2110。或者同一时间接收到多个中断信号,同样可以按照各子实时处理器100的优先级,依次发送各信号到通用处理器中断接口2100。
其次,当片上模块中断接口290同时接收到多个来自片上模块的中断控制信号时,片上模块中断接口290可以获取各中断控制信号对应的子实时处理器100,并按照各子实时处理器100的优先级,依次将各中断控制信号发送到对应的子实时处理器100。
可选的,片上模块中断接口290也可以通过第二仲裁器250与各子实时处理器100,此时,片上模块中断接口290可以将接收的中断控制信号直接发送到第二仲裁器250,由第二仲裁器250对同时接收的多个中断控制信号进行仲裁,并发送到对应的子实时处理器100。
其中,触发输出操作指令,用于产生输出脉冲信号以产生一拍的脉冲,最大支持256个触发输出,256个触发输出可以分为16组,每组16个,每次可以设置1位输出。在本实施例中,通过子实时处理器100执行该触发输出操作指令,可以生成多个触发输出脉冲信号发送到不同的片上模块,可以实现对各片上模块的启动、停止和复位等功能的控制。
触发输出操作指令的数据结构可以如表4所示,设置输出后更新分为两种模式,一种是立即更新,即执行完该指令后,将立即发出输出脉冲信号;另一种是等待更新,即执行完该指令后,只有等到更新操作指令执行了才会发出输出脉冲信号,此更新模式主要用于多个输出脉冲信号同时发出的情况。输出脉冲信号主要用于控制片上模块的打开、关闭、复位、清零或其它触发功能,而每个输出脉冲信号对应的功能也可通过寄存器220(例如,RETP_TRGx)进行设置。
表4触发输出操作指令的数据结构
其中,更新操作指令的数据结构可以如表5所示。在执行该指令后,将立即更新此前执行通用输出操作指令和触发输出操作指令后处于等待更新的信号。
表5更新操作指令的数据结构
31 28 | 27 14 | 13 0 | |
更新操作 | 自定义 | 无 | 间隔时间 |
在本实施例中,子实时处理器100通过执行触发输出操作指令,可以通过片上模块触发接口2110在精确时间控制片上模块的工作状态,例如,启动模块,从而可以提升对片上模块的控制的时间精准度。
此外,中断操作指令,用于定时生成中断信号发送给对应的片上通用处理器,中断源可记录到中断状态寄存器中32个处理器中断的任意一个。中断操作指令的数据结构可以如表6所示,其中,对于中断选择参数,0表示选择RTEP_INT0(第1个处理器中断),1表示选择RTEP_INT1(第2个处理器中断),以此类推,31表示选择RTEP_INT31(第32个处理器中断)。
表6中断操作指令的数据结构
31 28 | 27 23 | 22 14 | 13 0 | |
中断 | 0x5 | 中断选择 | 无 | 间隔时间 |
其中,中断控制信号,可以包括中断程序的起始地址和结束地址。在本实施例中,子实时处理器100在通过片上模块中断接口290接收到来自片上模块的中断控制信号时,可以为每个片上模块中断设置一组寄存器220,例如,可以包括模块中断处理使能寄存器RTEP_RCV_INTi_EN、模块中断对应的子处理器编号寄存器RTEP_RCV_INTi_SUBEP_ID,以及模块中断对应的子处理器取指寄存器RTEP_RCV_INTi_SUBEP_STR_ADDR(包括指令的起始地址和结束地址)。子实时处理器100在处理该片上模块的中断事件组时,可以从指令起始地址依次获取该中断事件组的指令并执行。此外,子实时处理器100还可以设置中断模式使能寄存器RTEPx_RCV_INT_ENA,当此比特为使能时,子实时处理器100只用于处理相应片上模块的中断事件组;当此比特为非使能时,处理软件提前配置的单一事件组或多事件组。
可选的,如图2G所示,实时处理器200,还可以包括数据存储器2120,数据存储器2120通过第一仲裁器230分别与各子实时处理器100通信连接;
各子实时处理器100,还用于生成数据操作请求信号发送到第一仲裁器230;第一仲裁器230,还用于在同时接收到各子实时处理器100发送的数据操作请求信号时,根据各子实时处理器100的优先级,按照优先级从高到低的顺序依次将各数据操作请求信号转发至数据存储器2120;数据存储器2120,用于接收第一仲裁器230转发的数据操作请求信号,并根据数据操作请求信号对已存数据进行对应的数据操作。
在本实施例中,各子实时处理器100可以通过数据操作请求信号,对通用的数据存储器2120进行读写操作。具体的,各子实时处理器100首先生成数据操作请求信号发送到第一仲裁器230,当第一仲裁器230同时接收到多个子实时处理器100的数据操作请求时,可以根据各子实时处理器100的优先级,按照优先级从高到低的顺序依次将各数据操作请求信号转发至数据存储器2120。
在一个具体的例子中,子实时处理器100可以执行数据赋值操作指令,以对数据存储器2120进行写操作,其一次可写入16位数据。其中,数据赋值操作指令,可以包括数据低位赋值指令和数据高位赋值指令,数据低位赋值指令的数据结构可以如表7所示,数据高位赋值指令的数据结构可以如表8所示。对于存储数据地址参数,0表示数据存储器2120的第1个数据的地址,1表示数据存储器2120的第2个数据的地址,以此类推,1023表示数据存储器2120的第1024个数据的地址。
表7数据低位赋值指令的数据结构
31 28 | 27 12 | 11 10 | 9 0 | |
数据低位赋值 | 自定义 | 数据 | 保留 | 存储数据地址 |
表8数据高位赋值指令的数据结构
31 28 | 27 12 | 11 10 | 9 0 | |
数据高位赋值 | 自定义 | 数据 | 保留 | 存储数据地址 |
此外,数据存储器2120还可以用于存储寄存器操作指令对应的读写操作地址、条件跳转操作指令对应的条件地址和条件设置操作指令对应的条件地址。在本实施例中,对数据存储器2120存储的数据类型不作具体限定。
可选的,如图2H所示,实时处理器200,还包括总线主设备接口2130,总线主设备接口2130通过第二仲裁器250与各子实时处理器100通信连接;
各子实时处理器100,还用于执行寄存器操作指令,以生成寄存器操作请求信号,将寄存器操作请求信号发送到第二仲裁器250;第二仲裁器250,还用于在同时接收到各子实时处理器100发送的寄存器操作请求信号时,根据各子实时处理器100的优先级,按照优先级从高到低的顺序依次将各子实时处理器100发送的寄存器操作请求信号转发至总线主设备接口2130;总线主设备接口2130,用于将第二仲裁器250转发的各寄存器操作请求信号转发至对应的片上模块寄存器。
其中,寄存器操作指令的数据结构可以如表9所示。
表9寄存器操作指令的数据结构
在执行该指令之后,子实时处理器100可以生成寄存器操作请求信号,以对对应的寄存器220或者允许访问的其他寄存器220进行读写操作。其中,对于操作数量参数,0表示进行256次寄存器操作,1表示进行1次寄存器操作,以此类推,255表示进行255次寄存器操作。
此外,对于存储数据地址参数,0表示实时处理器200的数据存储器2120的第1个数据地址,1表示数据存储器2120的第2个数据地址,以此类推,2047表示数据存储器2120的第2048个数据的地址。由于数据存储器2120的深度为2048,故地址最大用到11位,即0到10位。其次,由于存储数据地址是以WORD(32位)为单位的,而总线访问数据存储器地址是以BYTE为单位的,所以存储数据地址和总线访问数据存储器地址的偏移量存在除以4的关系。
而对于位选择参数,当条件使能时,用于选择16个条件中的一个,其中0表示条件0,对应设定数组rtep_gpo[112],1表示条件1,对应rtep_gpo[113],以此类推,15表示条件15,对应rtep_gpo[127]。当中断使能时,用于选择32个中断中的一个,其中0表示选择RTEP_INT0,1表示选择RTEP_INT1,以此类推,31表示选择RTEP_INT31。当条件和中断都使能时,表示选择的条件和中断为相同的数字。
其中,对于中断使能,此处的中断对应中断操作指令中所对应的32个中断。如果中断使能,在寄存器操作结束后,即从32个中断中选择的一个中断发出。而对于条件使能,此处的条件对应的是条件等待操作指令中的16条件。如果条件使能,则在寄存器操作结束后,将16个条件中选择的一个条件置为有效(即置为1)。
在本实施例中,在寄存器操作指令开始被执行后,如果是写操作,可以从数据存储器2120的指定地址,例如,j,读取写操作寄存器地址,并在j+1读取寄存器数据,然后将寄存器数据写入到指定的寄存器220中。如果是对多个寄存器220执行写操作,则继续数据存储器2120的指定地址j+2的读取写操作寄存器地址,并在指定地址j+3读取寄存器数据,然后将寄存器数据写入到指定的寄存器220中。以此类推,直到寄存器操作指令执行结束。
其次,如果是读操作,可以从数据存储器2120的指定地址读取读操作寄存器地址,然后读取指定寄存器220的数据写入到数据存储器2120的指定地址j+1处。如果是对多个寄存器220执行读操作,则继续从数据存储器2120的指定地址j+2读取读操作寄存器地址,然后读取指定寄存器220的数据写入到数据存储器2120的指定地址j+3处。以此类推,直到寄存器操作指令执行结束。
需要说明的是,由于多个子实时处理器100共用一个总线主设备接口2130,如果存在多个子实时处理器100同时执行寄存器操作指令,此时第二仲裁器250同时接收到多个来自不同子实时处理器100的寄存器操作请求信号,故产生寄存器操作冲突。当产生该冲突时,可以按照子实时处理器0优先级最高,子实时处理器N优先级最低的顺序依次将各子实时处理器100的寄存器操作请求信号发送至总线主设备接口2130。
此外,在另一种场景下,一个子实时处理器100连续执行三条寄存器操作指令,而第二条指令执行时第一条寄存器操作指令启动的寄存器操作还未完成,第二条寄存器操作指令就会处于等待状态。如果在第二条指令等待期间第三条指令到来,就会产生寄存器操作冲突中断。当产生该冲突时,第三条寄存器操作指令将永远无法执行。因此,在使用该寄存器操作指令时,可以使用一条或两条指令完成多个寄存器220的操作,以避免寄存器操作冲突中断情况的出现。
在本实施例中,子实时处理器100通过执行寄存器操作命令,可以通过总线主设备接口2130在精确时间访问片上各个模块的寄存器,从而可以提升对片上模块进行控制的时间精准度。
可选的,在本实施例中,子实时处理器100可以执行的指令还可以包括空操作指令、不使能操作指令、条件等待操作指令、条件跳转操作指令、条件设置操作指令和快拍操作指令。
其中,空操作指令的数据结构可以如表10所示,空操作指令可以包括三种工作模式,分别为空操作模式、间隔时间计数单元工作模式设置模式和间隔时间计数单元清零操作模式。
表10空操作指令的数据结构
当工作模式选择为空操作模式时,执行此指令不进行任何操作。而当工作模式选择为间隔时间计数单元工作模式设置模式,执行此指令可以设置间隔时间计数单元130的工作模式,包括自清零模式和不清零模式。此外,间隔时间计数单元130的工作模式也可以由子实时处理器启动控制寄存器(RTEPx_STR_CTRL)的DELTA_CNT_MODE比特位来设置。
当间隔时间计数单元130工作在自清零模式下,间隔时间计数值表示本指令执行时间点距离上个指令执行时间点的时间间隔。而当间隔时间计数单元130工作在不清零模式下,间隔时间计数值表示本指令执行时间点距离子实时处理器100启动时间点的时间间隔。此外,当工作模式选择为间隔时间计数单元清零操作模式时,执行此指令后,将间隔时间计数单元130的计数值清零。
对于不使能操作指令,其数据结构可以如表11所示,在执行不使能操作指令之后,当前的子实时处理器100进入不使能状态。
表11不使能操作指令的数据结构
31 28 | 27 14 | 13 0 | |
不使能操作 | 自定义 | 无 | 间隔时间 |
对于条件等待操作指令,其数据结构可以如表12所示。当选择的条件为0时,此子实时处理器100将一直处于等待状态,此时间隔时间计数单元130停止计数。当选择的条件为1时,此子实时处理器100将继续读取下一个待执行指令。其中,对于条件选择参数,0表示条件0,对应设定数组rtep_gpo[112],1表示条件1,对应rtep_gpo[113],以此类推,15表示条件15,对应rtep_gpo[127]。在本实施例中,最多可支持16个条件。
表12条件等待操作指令的数据结构
31 28 | 27 12 | 11 0 | |
条件等待 | 自定义 | 无 | 条件选择 |
对于条件跳转操作指令,其数据结构可以如表13所示。其中,当条件取反参数设置为不取反时,若设定的条件不为0,则跳转到当前子实时处理器100内部指令存储单元180的设定地址;若设定的条件为0,则继续读取下一个待执行指令,不进行跳转。而当条件取反参数设置为取反时,若设定的条件为0时,则跳转到当前子实时处理器100内部指令存储单元180的设定地址,若设定的条件不为0,则继续读取下一个待执行指令,不进行跳转。
表13条件跳转操作指令的数据结构
值得注意的是,对于条件跳转操作指令,其不包括间隔时间参数,故此指令可以立即执行,不需要等待间隔时间。其中,对于跳转地址参数,0表示指令存储单元180第1条指令地址,1表示指令存储单元180第2条指令地址,以此类推,63表示指令存储单元180第64条指令地址。
位选择参数,用于选择从存储条件地址取得的32位数据的某一位。对于存储条件地址参数,0表示数据存储器2120的第1个数据的地址,1表示数据存储器2120的第2个数据的地址,以此类推,1023表示数据存储器2120的第1024个数据的地址。
对于条件设置操作指令,其对应的数据结构可以如表14所示。当执行该条件设置操作指令时,对指定的条件为进行相应的操作,可以用于设置条件跳转操作指令中用到的条件。
表14条件设置操作指令的数据结构
其中,位选择参数,用于选择需要对存储条件地址操作的32位数据的某一位;对于存储条件地址参数,0表示数据存储器2120的第1个数据的地址,1表示数据存储器2120的第2个数据的地址,以此类推,1023表示数据存储器2120的第1024个数据的地址。
对于模式选择参数,置位和位清除需要用到位选择,置位表示将选择的位置1,位清除表示将选择的位清零;右移表示将存储条件地址的32位数据整体右移1位,最高位补0;左移表示将存储条件地址的32位数据整体左移1位,最低位补0;减1表示存储条件地址的32位数据减1;加1表示存储条件地址的32位数据加1。
对于快拍操作指令,其数据结构可以如表15所示。子实时处理器100在取到快拍操作指令之后,在间隔时间计数单元130计到设定间隔时间时,锁存专有定时器接口280的各个定时器的计数器值,包括本子实时处理器100绑定的定时器的计数值,存储到本实时处理器200的数据存储器2120的地址,存储起始地址为该快拍操作指令中携带的存储数据地址。
表15快拍操作指令的数据结构
31 28 | 27 24 | 23 14 | 13 0 | |
快拍操作 | 自定义 | 无 | 存储数据地址 | 间隔时间 |
在本实施例中,指令集定义可以如表16所示。
表16指令集定义
在本实施例中,设计了一种空操作指令,用于时间等待;一种不使能操作指令,用于在精确时间关闭本子实时处理器100;一种通用输出操作指令,用于在精确时间驱动芯片的通用输出管脚;一种触发输出操作指令,用于在精确时间触发片上模块的某种行为,比如打开或关闭等;一种更新操作指令,用于将此条指令之前的通用输出操作指令和触发输出操作指令中用于等待更新的信号同时更新;一种中断操作指令,用于在精确时间给片上通用处理器产生中断;一种外设接口操作指令,用于实时传递配置命令和数据到硬件接口;一种地址跳转指令,用于跳转到本指令存储器240的某个地址;一种条件等待操作指令,用于以通用输出操作指令驱动的某个通用输出信号为条件,控制本实时处理器200等待;一种寄存器操作指令,用于访问片上模块;一种数据低位赋值指令和数据高位赋值指令,用于对实时处理器200的数据存储器2120的一个地址的高位和低位进行写数据;一种条件跳转操作指令,条件为数据存储器2120的某个地址的数据中的一位,条件满足时跳转到本指令存储器240的某个地址;一种条件设置操作指令,用于设置条件跳转操作指令中的条件数据;以及一种快拍操作指令,用于在子实时处理器100对应的定时器的某个时间点读取目标定时器的时间,并存入数据存储器2120中。实时处理器200通过执行上述指令,可以实现对片上模块的精准控制。
实施例三
图3为本发明实施例三提供了一种系统级芯片的结构图,系统级芯片300,可以包括本发明实施例二所述的实时处理器200。其中,实时处理器200的数量可以是一个,也可以是多个。
本发明实施例的技术方案,通过采用实时处理器200,作为系统级芯片300的通用处理器的协处理器,或者专用控制器,以负责实时要求高和精度要求高的片上或者片外控制任务,可以减轻通用处理器的负担,且可以提升控制的时间精准度,可以提升系统级芯片的可编程性。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (11)
1.一种子实时处理器,其特征在于,包括控制单元、指令预取单元、间隔时间计数单元、比较单元和执行单元,所述指令预取单元分别与所述执行单元和所述控制单元通信连接,所述间隔时间计数单元通过所述比较单元与所述执行单元通信连接,所述执行单元与所述控制单元通信连接;
所述控制单元,用于在检测到上电复位或者模块软件复位时进入空闲状态;在检测到子实时处理器被使能时,由空闲状态跳转到取指令状态,并生成取指令控制信号发送到所述指令预取单元;在检测到所述指令预取单元发送的取指令完成信号时,由取指令状态跳转到执行状态,并生成指令执行控制信号发送到所述执行单元;在检测到所述执行单元发送的执行完成信号时,由执行状态跳转到取指令状态;在取指令状态或者执行状态检测到寄存器的子实时处理器不使能指令时跳转到空闲状态;
所述指令预取单元,用于在接收到所述控制单元发送的取指令控制信号时,获取待执行指令,并将所述待执行指令发送到所述执行单元;
所述执行单元,用于在接收到所述控制单元发送的指令执行控制信号时,获取待执行指令对应的设定间隔时间发送到所述比较单元;在接收到所述比较单元发送的所述待执行指令对应的启动执行信号时,执行所述待执行指令,以及在所述待执行指令执行完成后,生成执行完成信号发送到所述控制单元;
所述间隔时间计数单元,用于基于时间基准信号进行时间间隔计数,以获取当前间隔时间计数值,并将所述当前间隔时间计数值发送到所述比较单元;
所述比较单元,用于对所述执行单元发送的所述待执行指令对应的设定间隔时间和所述间隔时间计数单元发送的所述当前间隔时间计数值进行数值比较,若检测到所述设定间隔时间与所述当前间隔时间计数值相等,则生成所述待执行指令对应的启动执行信号发送到所述执行单元。
2.根据权利要求1所述的子实时处理器,其特征在于,还包括地址生成单元、仲裁单元和指令存储单元,所述地址生成单元分别与所述执行单元、所述仲裁单元和所述控制单元通信连接,所述指令存储单元通过所述仲裁单元分别与所述地址生成单元和所述指令预取单元通信连接;
所述执行单元,还用于当检测到所述指令预取单元发送的待执行指令的指令类型为地址跳转指令时,获取所述待执行指令对应的跳转地址发送到所述地址生成单元,并生成跳转控制信号分别发送到所述地址生成单元和所述指令预取单元;
所述地址生成单元,用于在接收到仲裁单元发送的指令存储单元加载完成信号时,根据顺序预取指地址获取指令取指地址;在接收到所述执行单元发送的跳转地址和跳转控制信号时,根据所述跳转地址获取指令取指地址;将指令取指地址发送到所述仲裁单元;
所述指令预取单元,用于在接收到所述控制单元发送的取指令控制信号、仲裁单元发送的存储单元加载完成信号和所述执行单元发送的跳转控制信号时,生成指令预取请求信号发送到所述仲裁单元,接收所述仲裁单元反馈的待执行指令;
所述仲裁单元,用于生成指令存储单元加载完成信号发送到所述地址生成单元和所述指令预取单元;在同时接收到所述地址生成单元发送的指令取指地址、所述指令预取单元发送的指令预取请求信号和总线从设备接口发送的指令存储单元读写请求信号时,将所述指令存储单元读写请求信号、所述指令取指地址和所述指令预取请求信号依次发送到所述指令存储单元;将所述指令存储单元反馈的所述指令存储单元读写请求信号对应的已存指令发送到所述总线从设备接口进行转发,以及将所述指令存储单元反馈的所述指令取指地址对应的已存指令发送到所述指令预取单元;
所述指令存储单元,用于根据所述指令存储单元读写请求信号对已存指令进行更新,或者获取所述指令存储单元读写请求信号对应的已存指令发送到所述仲裁单元;以及获取所述指令取指地址对应的已存指令发送到所述仲裁单元。
3.一种实时处理器,其特征在于,包括至少一个如权利要求1或者2所述的子实时处理器、总线从设备接口和寄存器,所述总线从设备接口通过所述寄存器分别与各所述子实时处理器通信连接;
所述总线从设备接口,用于接收寄存器配置指令,并将所述寄存器配置指令转发至所述寄存器;
所述寄存器,用于根据所述寄存器配置指令进行寄存器状态设置,以获取当前寄存器状态;
各所述子实时处理器,用于根据所述寄存器的当前寄存器状态进行指令处理。
4.根据权利要求3所述的实时处理器,其特征在于,还包括第一仲裁器和指令存储器,所述指令存储器通过所述第一仲裁器分别与各所述子实时处理器通信连接;
各所述子实时处理器,还用于生成指令预取请求信号发送到所述第一仲裁器,以及在接收到所述第一仲裁器反馈的待执行指令时,执行所述待执行指令;
所述第一仲裁器,用于在检测到各所述子实时处理器发送的指令预取请求信号满足第一预设冲突检测条件时,根据各所述子实时处理器的优先级,按照优先级从高到低的顺序依次将各所述子实时处理器发送的指令预取请求信号转发至所述指令存储器,以及接收所述指令存储器反馈的待执行指令,并将所述待执行指令转发至对应的子实时处理器;
所述指令存储器,用于在接收到所述第一仲裁器转发的指令预取请求信号时,获取所述指令预取请求信号对应的待执行指令发送到所述第一仲裁器。
5.根据权利要求4所述的实时处理器,其特征在于,所述总线从设备接口还通过所述第一仲裁器与所述指令存储器通信连接;
所述总线从设备接口,还用于获取指令存储器读写请求信号,并将所述指令存储器读写请求信号转发至所述第一仲裁器,以及对所述第一仲裁器转发的所述指令存储器读写请求信号对应的已存储指令进行外部转发;
所述第一仲裁器,还用于接收所述总线从设备接口转发的指令存储器读写请求信号,并在将当前待执行指令转发至对应的子实时处理器之后,将所述指令存储器读写请求信号转发至所述指令存储器,以及将所述指令存储器反馈的所述指令存储器读写请求信号对应的已存储指令转发到所述总线从设备接口;
所述指令存储器,还用于根据所述指令存储器读写请求信号对已存储指令进行更新,或者获取所述指令存储器读写请求信号对应的已存储指令发送到所述第一仲裁器。
6.根据权利要求3所述的实时处理器,其特征在于,还包括第二仲裁器、外设配置接口和通用输出接口,所述外设配置接口和所述通用输出接口分别通过所述第二仲裁器与各所述子实时处理器通信连接;
各所述子实时处理器,还用于执行通用输出操作指令,以生成通用输出信号,并将所述通用输出信号发送到所述第二仲裁器;以及执行外设接口操作指令,以生成外设数据输出控制信号,并将所述外设数据输出控制信号发送到所述第二仲裁器;
所述第二仲裁器,用于在检测到各所述子实时处理器发送的通用输出信号满足第二预设冲突检测条件时,在所述各通用输出信号中筛选得到优先级最高的目标通用输出信号,并将所述目标通用输出信号发送到所述通用输出接口;以及
在检测到各所述子实时处理器发送的外设数据输出控制信号满足第三预设冲突检测条件时,根据各所述子实时处理器的优先级,按照优先级从高到低的顺序依次将各所述外设数据输出控制信号发送到所述外设配置接口;
所述通用输出接口,用于接收所述第二仲裁器转发的目标通用输出信号,并对所述目标通用输出信号进行输出;
所述外设配置接口,用于接收所述第二仲裁器转发的外设数据输出控制信号,并对所述外设数据输出控制信号进行输出。
7.根据权利要求3所述的实时处理器,其特征在于,还包括至少一个定时器接口,各所述定时器接口分别与各所述子实时处理器通信连接;
各所述定时器接口,用于获取定时脉冲,并将所述定时脉冲发送到各所述子实时处理器;
各所述子实时处理器,还用于接收各所述定时器接口发送的定时脉冲,并根据各所述定时脉冲进行指令处理。
8.根据权利要求6所述的实时处理器,其特征在于,还包括片上模块中断接口、通用处理器中断接口和片上模块触发接口,所述片上模块中断接口分别与各所述子实时处理器通信连接,所述通用处理器中断接口和所述片上模块触发接口分别通过所述第二仲裁器与各所述子实时处理器通信连接;
各所述子实时处理器,还用于执行触发输出操作指令,以生成触发输出脉冲信号,并将所述触发输出脉冲信号发送到所述第二仲裁器;执行中断操作指令,以生成中断信号,并将所述中断信号发送到所述第二仲裁器;以及接收所述片上模块中断接口发送的中断控制信号,并执行所述中断控制信号对应的所述指令存储器中的已存储指令;
所述第二仲裁器,还用于在同时接收到各所述子实时处理器发送的触发输出脉冲信号时,根据各所述子实时处理器的优先级,按照优先级从高到低的顺序依次将各所述触发输出脉冲信号发送到片上模块触发接口;以及在同时接收到各所述子实时处理器发送的中断信号时,根据各所述子实时处理器的优先级,按照优先级从高到低的顺序依次将各所述中断信号发送到通用处理器中断接口;
所述片上模块触发接口,用于将所述第二仲裁器发送的触发输出脉冲信号转发至对应的片上模块;
所述通用处理器中断接口,用于将所述第二仲裁器发送的中断信号转发至对应的通用处理器;
所述片上模块中断接口,用于接收来自片上模块的中断控制信号,并将所述中断控制信号转发至对应的子实时处理器。
9.根据权利要求4所述的实时处理器,其特征在于,还包括数据存储器,所述数据存储器通过所述第一仲裁器分别与各所述子实时处理器通信连接;
各所述子实时处理器,还用于生成数据操作请求信号发送到所述第一仲裁器;
所述第一仲裁器,还用于在同时接收到各所述子实时处理器发送的数据操作请求信号时,根据各所述子实时处理器的优先级,按照优先级从高到低的顺序依次将各所述数据操作请求信号转发至所述数据存储器;
所述数据存储器,用于接收所述第一仲裁器转发的数据操作请求信号,并根据所述数据操作请求信号对已存数据进行对应的数据操作。
10.根据权利要求6所述的实时处理器,其特征在于,还包括总线主设备接口,所述总线主设备接口通过所述第二仲裁器与各所述子实时处理器通信连接;
各所述子实时处理器,还用于执行寄存器操作指令,以生成寄存器操作请求信号,将所述寄存器操作请求信号发送到所述第二仲裁器;
所述第二仲裁器,还用于在同时接收到各所述子实时处理器发送的寄存器操作请求信号时,根据各所述子实时处理器的优先级,按照优先级从高到低的顺序依次将各所述子实时处理器发送的寄存器操作请求信号转发至所述总线主设备接口;
所述总线主设备接口,用于将所述第二仲裁器转发的各所述寄存器操作请求信号转发至对应的片上模块寄存器。
11.一种系统级芯片,其特征在于,包括如权利要求3-10任一所述的实时处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210768628.0A CN117369870A (zh) | 2022-06-30 | 2022-06-30 | 一种子实时处理器、实时处理器和系统级芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210768628.0A CN117369870A (zh) | 2022-06-30 | 2022-06-30 | 一种子实时处理器、实时处理器和系统级芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117369870A true CN117369870A (zh) | 2024-01-09 |
Family
ID=89400953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210768628.0A Pending CN117369870A (zh) | 2022-06-30 | 2022-06-30 | 一种子实时处理器、实时处理器和系统级芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117369870A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118519688A (zh) * | 2024-07-22 | 2024-08-20 | 深圳市汇顶科技股份有限公司 | 芯片、组网系统和电子设备 |
-
2022
- 2022-06-30 CN CN202210768628.0A patent/CN117369870A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118519688A (zh) * | 2024-07-22 | 2024-08-20 | 深圳市汇顶科技股份有限公司 | 芯片、组网系统和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2457170B1 (en) | Programmable exception processing latency | |
EP1899828B1 (en) | Device and method for arbitrating between direct memory access task requests | |
EP1899826B1 (en) | Device and method for controlling an execution of a dma task | |
US20070226422A1 (en) | Multi-master system and data transfer system | |
US10657039B2 (en) | Control device for a motor vehicle | |
EP2790106A2 (en) | Performance measurement unit, processor core including the same and process profiling method | |
JP2007241918A (ja) | プロセッサ装置 | |
US5903912A (en) | Microcontroller configured to convey data corresponding to internal memory accesses externally | |
US8918680B2 (en) | Trace queue for peripheral component | |
CN117369870A (zh) | 一种子实时处理器、实时处理器和系统级芯片 | |
EP1899827B1 (en) | Device and method for executing a dma task | |
US20040267979A1 (en) | Readdressable virtual DMA control and status registers | |
US5696957A (en) | Integrated circuit comprising a central processing unit for executing a plurality of programs | |
EP1988465B1 (en) | Processor, and cache control method | |
US7702862B2 (en) | Metrics modules and methods for monitoring, analyzing and optimizing bus and memory operations in a complex integrated circuit | |
US20060168428A1 (en) | Method of providing microcontroller context management | |
US20120072632A1 (en) | Deterministic and non-Deterministic Execution in One Processor | |
JP5982845B2 (ja) | トレース制御装置及びトレース制御方法 | |
WO1998007090A1 (en) | A microcontroller configured to indicate internal memory accesses externally | |
US20070038435A1 (en) | Emulation method, emulator, computer-attachable device, and emulator program | |
JP6188895B1 (ja) | 車載制御プログラムの実行時データ取得方法および車載制御装置 | |
CN116991764B (zh) | 一种高性能的Flash控制器和嵌入式系统 | |
US20240320174A1 (en) | Direct memory access controller | |
US20050120348A1 (en) | Method of determining information about the processes which run in a program-controlled unit during the execution of a program by the program-controlled unit | |
US20230418472A1 (en) | Methods and apparatus to schedule memory operations |
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 |