CN113626078A - 一种提高芯片设计模块性能的快速环境切换方法 - Google Patents
一种提高芯片设计模块性能的快速环境切换方法 Download PDFInfo
- Publication number
- CN113626078A CN113626078A CN202110788502.5A CN202110788502A CN113626078A CN 113626078 A CN113626078 A CN 113626078A CN 202110788502 A CN202110788502 A CN 202110788502A CN 113626078 A CN113626078 A CN 113626078A
- Authority
- CN
- China
- Prior art keywords
- configuration
- status registers
- writing
- switch
- memory
- 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 32
- 238000013461 design Methods 0.000 title claims abstract description 14
- 230000015654 memory Effects 0.000 claims abstract description 42
- 230000001960 triggered effect Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 125000004122 cyclic group Chemical group 0.000 claims description 6
- 230000008569 process Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
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/30098—Register arrangements
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明公开了一种提高芯片设计模块性能的快速环境切换方法,包括:依序将目标寄存器数值写入存储器;提供至少两组配置和状态寄存器;在将目标寄存器数值写入存储器后,触发将该存储器的寄存器数值写入第一组配置和状态寄存器;在完成该组配置和状态寄存器的写入后,将IP核的执行环境切换至该组配置和状态寄存器;以及在下一次环境切换前,基于下一组存储器的寄存器数值写入第二组配置和状态寄存器。本发明实施例通过至少两组配置和状态寄存器,由此可以在下一次环境切换前,完成配置和状态寄存器的写入,从而无需逐个读写寄存器,实现任务的连续执行,由此降低了性能损失。
Description
技术领域
本发明涉及任务快速切换技术领域,尤其涉及一种提高芯片设计模块性能的快速环境切换方法。
背景技术
在现有的芯片设计中,尤其是高性能IP核例如视频编解码器设计中,为了最大限度的提高设计的可重用性以及对旧有技术标准和格式的支持,IP核都支持很多种模式。随着IP设计支持的模式的数量增加,IP核的配置和状态寄存器的数量也大量增加。同时,由于半导体工艺的进步,IP核自身的性能也越发提高,单位时间里可以处理更多任务的数据,不同任务的数据流在同一个IP核的分时复用为系统设计带来了极大的性能提升和灵活性,但也同时带来了更多的配置和状态寄存器的读写周期。在现有的视频编解码器应用中,由于每一帧图像编解码都需要环境切换,传统的片上中央处理器(CPU)逐个读写寄存器方法会导致高达10%的性能损失。
发明内容
本发明实施例提供一种提高芯片设计模块性能的快速环境切换方法,用以解决现有任务快速切换过程中逐个读写寄存器导致的性能损失的技术问题。
本公开实施例提出一种提高芯片设计模块性能的快速环境切换方法,包括:
依序将目标寄存器数值写入存储器;
提供至少两组配置和状态寄存器;
在将目标寄存器数值写入存储器后,触发将该存储器的寄存器数值写入第一组配置和状态寄存器;
在完成该组配置和状态寄存器的写入后,将IP核的执行环境切换至该组配置和状态寄存器;以及
在下一次环境切换前,基于下一组存储器的寄存器数值写入第二组配置和状态寄存器。
在一些实施例中,还包括:通过切换开关在所述至少两组配置和状态寄存器之间执行循环环境切换。
在一些实施例中,所述切换开关由IP核的执行任务完成事件触发。
在一些实施例中,至少两组配置和状态寄存器的参数相同。
本公开实施例还提出一种任务快速切换设备,包括:
至少两组配置和状态寄存器;
处理器,被配置为依序将目标寄存器数值写入存储器;
微控制器,被配置为在将目标寄存器数值写入存储器后,触发将该存储器的寄存器数值写入第一组配置和状态寄存器;
切换开关,被配置为在完成该组配置和状态寄存器的写入后,将IP核的执行环境切换至该组配置和状态寄存器;以及
微控制器,还被配置为在下一次环境切换前,基于下一组存储器的寄存器数值写入第二组配置和状态寄存器。
在一些实施例中,所述切换开关,还被配置为在所述至少两组配置和状态寄存器之间执行循环环境切换。
在一些实施例中,所述切换开关由IP核的执行任务完成事件触发。
在一些实施例中,至少两组配置和状态寄存器的参数相同。
本公开实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述的任务快速切换方法的步骤。
本发明实施例通过至少两组配置和状态寄存器,由此可以在下一次环境切换前,完成配置和状态寄存器的写入,从而无需逐个读写寄存器,实现任务的连续执行,由此降低了性能损失。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本公开方法与现有方案的技术对比。
图2为本公开方法的基本流程图。
图3为本公开设备的基本框架结构图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如图1所示,在传统的IP核环境切换中,片上中央处理器会根据IP核需要完成的下一个任务,计算好需要的配置和状态寄存器数值,并等待当前任务的完成。当前任务完成后,中央处理器会把数值逐个写入IP核的寄存器,并再次启动IP核执行任务。在处理器读写IP核寄存器的时候,IP核本身处于空闲状态。如果IP核寄存器数量很大,那么空闲周期会很长从而在环境切换过程影响性能。本公开实施例提出一种提高芯片设计模块性能的快速环境切换方法,如图2所示,可以在步骤S201中依序将目标寄存器数值写入存储器。也即本示例中可以通过处理器将目标寄存器数值写入存储器中,当前存储器写入完成后可直接进行后续的存储器的写入。为了解决传统方法中的中央处理器逐个读写的低效率,本示例中可以在IP核内部集成一个微控制器,从而中央处理器可以把寄存器数值写入一块连续地址的片上存储器(例如静态随机存储器)或片外存储器(例如动态随机存储器)中。本示例中的IP核可以是知识产权模块,IP核可以是用于实现指定功能的芯片设计电路模块,可以是发明人开发的,也可以是从第三方获得许可使用的。本示例在步骤S202中提供至少两组配置和状态寄存器,也即本示例中为IP核设置至少两组配置和状态寄存器。然后在步骤S203中在将目标寄存器数值写入一组存储器后,触发将该存储器的寄存器数值写入第一组配置和状态寄存器。本示例中可以通过触发微控制器来控制将该存储器的寄存器数值写入第一组配置和状态寄存器。在步骤S204中在完成该组配置和状态寄存器的写入后,将IP核的执行环境切换至该组配置和状态寄存器。由此IP核可以根据当前第一组配置和状态寄存器中的数据执行任务。以及在步骤S205中在下一次环境切换前,基于下一组存储器中的寄存器数值写入第二组配置和状态寄存器。本示例中可以将配置和状态寄存器的改变和存储称为IP核的环境切换。在IP核执行任务的过程中第二组配置和状态寄存器处于空闲状态,不会被IP核执行,因此此时,还可以通过微控制器来控制将下一组存储器的寄存数值写入第二组配置和状态寄存器。由此在IP核执行下一任务时,如图1所示,可以将IP核执行环境切换至第二组配置和状态寄存器,从而有效避免了片上或片外存储器的读入时延和IP核内部微控制器配置的时延还是会导致环境切换过程中的性能损失。
在一些实施例中,至少两组配置和状态寄存器的参数相同。也即可以配置参数完全相同的至少两组配置和状态寄存器。
在一些实施例中,还包括:通过切换开关在所述至少两组配置和状态寄存器之间执行循环环境切换。示例性的可以通过切换开关的方式执行至少两组配置和状态寄存器之间的切换。例如可以从第一组配置和状态寄存器切换至第二组配置和状态寄存器,…,第N组配置和状态寄存器,再切换至第一组配置和状态寄存器。当然这只是一种切换的一种实现方式,在具体实现过程中可以通过该切换开关将IP核切换至相应的配置和状态寄存器中执行任务即可。作为一种示例性的情况,例如在包含两组配置和状态寄存器的情况下,通过切换开关可以实现“乒-乓”操作,从而还可以有效降低电路成本,特别的本发明方法尤其适用于视频编解码等需要频繁进行环境切换的场景,通过本发明方法能够实现对视频编解码器的快速环境切换,由于每一次切换前下一个配置和状态寄存器中已经写好了下一任务所需的寄存器数值,因此切换之后能够实现无缝衔接,从而极大降低性能损耗,大大提高编解码的性能。
在一些实施例中,所述切换开关由IP核的执行任务完成事件触发。也即在IP核将当前配置和状态寄存器的任务执行完成时,即可触发切换开关,选中第二组配置和状态寄存器。作为示例性的切换开关控制的二选一选择器可以在一个时钟周期完成切换,所以环境切换所需的性能损失几乎可以忽略,做到接近100%性能利用。
本公开实施例通过至少两组配置和状态寄存器,由此可以在下一次环境切换前,完成配置和状态寄存器的写入,从而无需逐个读写寄存器,完美实现任务的连续执行,由此降低了性能损失。
本公开实施例还提出一种任务快速切换设备,如图3所示,包括:至少两组配置和状态寄存器;处理器,被配置为依序将目标寄存器数值写入存储器;微控制器,被配置为在将目标寄存器数值写入一个存储器后,触发将该组存储器的寄存器数值写入第一组配置和状态寄存器;切换开关,被配置为在完成该组配置和状态寄存器的写入后,将IP核的执行环境切换至该组配置和状态寄存器;以及微控制器,还被配置为在下一次环境切换前,基于下一组存储器的寄存器数值写入第二组配置和状态寄存器。如图3所示,片上存储器可以包含若干个存储器,通过接口与处理器相连,处理器可以依序将目标寄存器数值写入一个存储器。在片上存储器后连接有微控制器,被配置为在将目标寄存器数值写入存储器后,触发将该存储器的寄存器数值写入一组配置和状态寄存器。在一些实施例中,所述切换开关,还被配置为在所述至少两组配置和状态寄存器之间执行循环环境切换。例如对于包含两组配置和状态寄存器的情况,切换开关可以通过控制二选一选择器来实现在两组配置和状态寄存器之间的来回切换。作为示例性的切换开关控制的二选一选择器可以在一个时钟周期完成切换,所以环境切换所需的性能损失几乎可以忽略,从而IP核可以做到接近100%性能利用。
在一些实施例中,至少两组配置和状态寄存器的参数相同。在一些实施例中,所述切换开关由IP核的执行任务完成事件触发。
本公开实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述的任务快速切换方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (9)
1.一种提高芯片设计模块性能的快速环境切换方法,其特征在于,包括:
依序将目标寄存器数值写入存储器;
提供至少两组配置和状态寄存器;
在将目标寄存器数值写入存储器后,触发将该存储器的寄存器数值写入第一组配置和状态寄存器;
在完成该组配置和状态寄存器的写入后,将IP核的执行环境切换至该组配置和状态寄存器;以及
在下一次环境切换前,基于下一组存储器的寄存器数值写入第二组配置和状态寄存器。
2.如权利要求1所述的快速环境切换方法,其特征在于,还包括:
通过切换开关在所述至少两组配置和状态寄存器之间执行循环环境切换。
3.如权利要求2所述的快速环境切换方法,其特征在于,所述切换开关由IP核的执行任务完成事件触发。
4.如权利要求1所述的快速环境切换方法,其特征在于,至少两组配置和状态寄存器的参数相同。
5.一种任务快速切换设备,其特征在于,包括:
至少两组配置和状态寄存器;
处理器,被配置为依序将目标寄存器数值写入存储器;
微控制器,被配置为在将目标寄存器数值写入存储器后,触发将该存储器的寄存器数值写入第一组配置和状态寄存器;
切换开关,被配置为在完成该组配置和状态寄存器的写入后,将IP核的执行环境切换至该组配置和状态寄存器;以及
微控制器,还被配置为在下一次环境切换前,基于下一组存储器的寄存器数值写入第二组配置和状态寄存器。
6.如权利要求5所述的任务快速切换设备,其特征在于,
所述切换开关,还被配置为在所述至少两组配置和状态寄存器之间执行循环环境切换。
7.如权利要求5所述的任务快速切换设备,其特征在于,所述切换开关由IP核的执行任务完成事件触发。
8.如权利要求5所述的任务快速切换设备,其特征在于,至少两组配置和状态寄存器的参数相同。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的任务快速切换方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110788502.5A CN113626078B (zh) | 2021-07-13 | 2021-07-13 | 一种提高芯片设计模块性能的快速环境切换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110788502.5A CN113626078B (zh) | 2021-07-13 | 2021-07-13 | 一种提高芯片设计模块性能的快速环境切换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113626078A true CN113626078A (zh) | 2021-11-09 |
CN113626078B CN113626078B (zh) | 2024-09-24 |
Family
ID=78379607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110788502.5A Active CN113626078B (zh) | 2021-07-13 | 2021-07-13 | 一种提高芯片设计模块性能的快速环境切换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626078B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03188531A (ja) * | 1989-12-18 | 1991-08-16 | Matsushita Electric Ind Co Ltd | 時分割マルチタスク実行装置 |
US6145049A (en) * | 1997-12-29 | 2000-11-07 | Stmicroelectronics, Inc. | Method and apparatus for providing fast switching between floating point and multimedia instructions using any combination of a first register file set and a second register file set |
US6209085B1 (en) * | 1995-05-05 | 2001-03-27 | Intel Corporation | Method and apparatus for performing process switching in multiprocessor computer systems |
US20190146700A1 (en) * | 2017-11-14 | 2019-05-16 | International Business Machines Corporation | Separation of memory-based configuration state registers based on groups |
CN111290856A (zh) * | 2020-03-23 | 2020-06-16 | 优刻得科技股份有限公司 | 数据处理装置和方法 |
-
2021
- 2021-07-13 CN CN202110788502.5A patent/CN113626078B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03188531A (ja) * | 1989-12-18 | 1991-08-16 | Matsushita Electric Ind Co Ltd | 時分割マルチタスク実行装置 |
US6209085B1 (en) * | 1995-05-05 | 2001-03-27 | Intel Corporation | Method and apparatus for performing process switching in multiprocessor computer systems |
US6145049A (en) * | 1997-12-29 | 2000-11-07 | Stmicroelectronics, Inc. | Method and apparatus for providing fast switching between floating point and multimedia instructions using any combination of a first register file set and a second register file set |
US20190146700A1 (en) * | 2017-11-14 | 2019-05-16 | International Business Machines Corporation | Separation of memory-based configuration state registers based on groups |
CN111290856A (zh) * | 2020-03-23 | 2020-06-16 | 优刻得科技股份有限公司 | 数据处理装置和方法 |
Non-Patent Citations (2)
Title |
---|
姚辰;王竹刚;熊蔚明;: "基于AD9364的通用软件无线电平台的FPGA设计与实现", 电子设计工程, no. 02, 20 January 2018 (2018-01-20) * |
王俊宇;忻凌;周维;周晓方;闵昊;: "一种可用于嵌入式Java处理器的寄存器队列", 计算机工程, no. 04, 20 February 2006 (2006-02-20) * |
Also Published As
Publication number | Publication date |
---|---|
CN113626078B (zh) | 2024-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102323333B1 (ko) | 애플리케이션 데이터 프로세싱 방법 및 장치, 및 저장 매체 | |
US9043806B2 (en) | Information processing device and task switching method | |
CN113918101B (zh) | 一种写数据高速缓存的方法、系统、设备和存储介质 | |
CN112767983B (zh) | 刷新控制电路及存储器 | |
US20070067778A1 (en) | System and method for communication in a multithread processor | |
US20100205606A1 (en) | System and method for executing a complex task by sub-tasks | |
EP4336359A1 (en) | Method for processing page faults and corresponding apparatus | |
US5504869A (en) | High speed processing system capable of executing strings of instructions in order without waiting completion of previous memory access instruction | |
WO2022042127A1 (zh) | 一种协程切换的方法、装置及设备 | |
US20210089482A1 (en) | Processor and interrupt controller therein | |
CN113626078A (zh) | 一种提高芯片设计模块性能的快速环境切换方法 | |
CN109460193B (zh) | 一种存储系统中io处理方法、装置及终端 | |
CN111383704A (zh) | 一种存储器内建自测试电路和对存储器的测试方法 | |
US11677902B2 (en) | Data processing method and related product | |
US6807604B2 (en) | Method of refreshing a dynamic memory | |
US6199143B1 (en) | Computing system with fast data transfer of CPU state related information | |
US9141310B1 (en) | Methods and apparatuses for shared state information among concurrently running processes or threads | |
US8799529B2 (en) | Direct memory access controller and operating method thereof | |
KR100658918B1 (ko) | 블록 단위 입출력 명령어를 이용한 시스템 전역 변수초기화 장치 및 그 방법 | |
US20100205598A1 (en) | Method for installing operating system in computer | |
US11966749B2 (en) | Processor and booting method thereof | |
CN111831405B (zh) | 一种数据处理方法、逻辑芯片及其设备 | |
CN113190306B (zh) | 显示层级的切换方法、装置、设备及存储介质 | |
CN117215819B (zh) | 一种机器异常检查中断的处理方法及装置 | |
US9740660B2 (en) | CPU control method, electronic system control method and electronic system for improved CPU utilization in executing functions |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |