CN1731358A - 减轻片上***软件负载的方法 - Google Patents
减轻片上***软件负载的方法 Download PDFInfo
- Publication number
- CN1731358A CN1731358A CN 200510028888 CN200510028888A CN1731358A CN 1731358 A CN1731358 A CN 1731358A CN 200510028888 CN200510028888 CN 200510028888 CN 200510028888 A CN200510028888 A CN 200510028888A CN 1731358 A CN1731358 A CN 1731358A
- Authority
- CN
- China
- Prior art keywords
- node
- control
- finger
- instruction
- chip
- 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
- Stored Programmes (AREA)
Abstract
一种计算机技术的减轻片上***软件负载的方法。本发明采用链表原理,软件负责将多个操作指令组织成链表,并控制硬件的启动和复位,硬件启动后自动读入链表的每个节点,完成相应数据的操作,整个指令链表执行完毕后,发送一个中断信号。将指令字和所有参数组成一个指令节点,一个节点对应一个操作,最后一项NIP是指向下一个节点的指针,存放下一个节点的起始内存地址,并约定如果此单元值为0表示该节点为链表的最后一个节点,多个节点组成一个指令链表。本发明将多个操作打包成指令链表,由硬件自动执行链表中的所有操作,对应多个操作只有一个中断,从根本上解决了中断次数过多引起软件负载加重的问题,同时实现方法简单,通用性强。
Description
技术领域
本发明涉及的是一种计算机技术领域的方法,具体地说是一种减轻片上***软件负载的方法。
背景技术
一个片上***(SoC)通常由***框架(包括CPU、总线、存储单元等)和多个输入/输出(I/O)功能模块组成。其中,CPU负责各I/O功能模块(例如音频模块、视频解码模块、视频处理模块、图形***模块等)的控制,这种控制一般通过配置各I/O功能模块的寄存器完成。这些寄存器通常位于主控接口模块(HostIF)中,与***存储器统一编址,一般包括控制寄存器、指令寄存器和参数寄存器。控制寄存器完成I/O功能模块的复位和启动控制。指令寄存器指示I/O功能模块需完成的操作。参数寄存器提供I/O功能模块工作所需的参数。实时性是大多数SoC所要求的,为使CPU对各I/O功能模块进行及时响应,可以采取多种方法进行控制。
经对现有技术的文献检索发现,William Stallings所著的《计算机组织与结构—性能设计(第五版)》(2001.8高等教育出版社)第182页至第209页介绍,主要有三种I/O控制方法:程序控制I/O、中断驱动I/O、直接存储器访问(DMA)。这三种方法依次减轻了CPU的负载。其中后两种方法都需要采用中断进行控制。但是,通常SoC中CPU的能力相当有限,过度频繁的中断会使CPU的开销加大,效率降低,严重影响***性能,甚至使***无法正常运行。该书的第207页至209页提出了I/O通道(I/O channel)的概念,这种技术理论上可进一步减轻CPU的负载。但具体的I/O通道实现方法,书中并未提及。
发明内容
本发明针对现有技术中的不足,提供一种减轻片上***软件负载的方法,使其将多个操作指令组织成指令链表,整个指令链表执行完毕后,发送一个中断信号,这样,原来需要多次中断现在只需要1次中断。对于需要连续多次进行操作的模块可以明显减少CPU中断次数,从而减轻CPU负载。
本发明是通过以下技术方案实现的,本发明采用链表原理,将多个操作指令组织成指令链表,对软硬件进行协同设计,软件负责将指令组织成链表,并控制硬件的启动和复位,硬件启动后自动读入链表的每个节点,完成相应数据的操作,整个指令链表执行完毕后,发送一个中断信号。
所述的将多个操作指令组织成指令链表,是指:将指令字和所有参数组成一个指令节点,一个节点对应一个操作。最后一项NIP是指向下一个节点的指针,存放下一个节点的起始内存地址,并约定如果此单元值为0表示该节点为链表的最后一个节点。多个节点组成一个指令链表。
所述的软件控制硬件的启动和复位,是指:在HostIF中设置控制寄存器和寄存器HIP,控制寄存器用于控制I/O功能模块的启动和复位,HIP用于存放链表的头节点的指针。
所述的I/O功能模块的硬件主要由三部分组成:取指单元、执行单元和控制单元,取指单元负责从***存贮器中取出指令节点,存放到片内的寄存器中。执行单元根据取出节点的内容执行相应的操作。控制单元控制取指单元和执行单元的动作。
取指和执行顺序进行,即取出一个节点,执行,再取下一个节点,再执行,直到所有节点执行完毕。需要在片内设置一组寄存器,用于存放取出的节点内容。控制单元用状态机实现。该状态机共有三个状态:空闲、取指和执行。***上电后处于空闲状态,当模块收到启动信号后转到取指状态,否则保持空闲状态;在取指状态下,取指完毕后进入执行状态,否则保持取指状态;在执行状态下,当前节点指令执行完后检查NIP的值,如果NIP非0则又进入取指状态,否则进入空闲状态;在任何状态下复位信号有效后,都进入空闲状态。在取指状态下,取指电路工作,从***存储器中取出一个节点的内容,并赋值给相应的寄存器。在执行状态下,执行电路根据刚才更新的寄存器的值进行相应操作。在空闲状态下,所有电路处于复位状态。
所述的I/O功能模块启动后,首先根据HIP的值,从***RAM中取出第一个节点的数据,进行第一个操作。操作完成后,根据NIP的值从***RAM中取出下一个节点的数据,进行下一个操作,直到NIP为0。整个指令链表都执行完后,发出中断信号。CPU在收到中断信号后,进行中断处理,发送下一个操作指令链表。
所述的硬件启动后自动读入链表的每个节点,完成相应数据的操作,具体为:在取指单元中设置取指计数器,取指单元每读进一个数据取指计数器自动加一,在执行状态时,计数器清零。所以取指计数器的值对应当前数据在节点中的位置,可以指导数据进入相应寄存器,并且当计数器的值等于节点的长度时,表明当前节点取指完毕,可以指导控制状态机跳转。执行单元在控制状态机的控制下执行指令,当执行完毕时向控制状态机发送“执行完毕”信号。由于***中数据和指令共用一个片外存储器,因此需要一个选择器,在状态机的控制下选择相应的信号送到存储控制器(MC)。
本发明具有突出的实质性特点和显著进步,本发明将多个操作打包成指令链表,由硬件自动执行指令链表中的所有操作,对应多个操作只有一个中断,极大地减少了中断次数,从而减轻了CPU的负载,对于保证SoC的实时性意义重大。另外,由于大量寄存器被移出HostIF,以链表节点的方式组织,而链表是由软件生成,放在片外RAM中,这样整个SoC芯片面积可减少,片内连线也可减少。本发明从根本上解决了中断次数过多引起软件负载加重的问题,具有实现方法简单,通用性强的特点。
附图说明
图1本发明链表结构图
图2本发明硬件结构框图
图3本发明控制状态转换图
具体实施方式
以下结合附图对本发明作进一步的说明:
本发明由软件和硬件共同完成。软件负责将指令组织成链表,并控制硬件的启动和复位。
如图1所示,指令链表组织如下:一个指令节点由指令字、所有参数和NIP(用于存放下一个节点的起始内存地址)组成,他们在内存中的连续存放,假设指令字的地址为X,共有N个参数,则他们的地址依次为X、X+1、X+2…X+N+1。最后一项NIP是指向下一个节点的指针,并约定如果此单元值为0表示该节点为链表的最后一个节点。一个节点对应一个操作,多个节点组成一个指令链表,链表最后一个节点的NIP值设为0。
在HostIF中设置寄存器HIP和控制寄存器,用HIP存放链表的头节点的指针,即第一个节点指令字的地址,控制寄存器设置启动位和复位,用于控制I/O功能模块的启动和复位。CPU执行的步骤如下:
1)准备指令链表,送入***RAM中;
2)设置好HIP;
3)在I/O功能模块就绪的情况下,设置控制寄存器,启动I/O功能模块。
硬件启动后自动读入链表的每个节点,完成相应数据的操作,整个指令链表执行完毕后,发送一个中断信号。
如图2所示,本发明硬件部分有取指单元、执行单元、控制单元、指令寄存器组和选择器。取指单元负责从***存贮器中取出指令节点,存放到片内的指令寄存器组。执行单元根据指令寄存器组的内容执行相应的操作。因而指令寄存器组成为取指单元和执行单元的桥梁。所有单元都在控制单元的控制下工作。该控制单元由控制状态机实现。
如图3所示,控制状态机共有三个状态:空闲、取指和执行。***上电后处于空闲状态,当模块收到启动信号后转到取指状态,否则保持空闲状态;在取指状态下,取指完毕后进入执行状态,否则保持取指状态;在执行状态下,当前节点指令执行完后检查NIP的值,如果NIP非0则又进入取指状态,否则进入空闲状态;在任何状态下复位信号有效后,都进入空闲状态。
模块启动后进入取指状态,取指单元向存储控制器(MC)发送发出读请求,请求的地址为HIP,读取个数为链表节点的大小。MC响应请求后,发送数据到取指单元,由数据有效信号指示数据的到来。在取指单元中设置取指计数器,取指单元每读进一个数据(即数据有效信号为高)取指计数器自动加一。根据取指计数器的值,把读进的数据送到指令寄存器组中相应的寄存器中。当取指计数器的值等于链表节点的大小时,表明取指完毕,进入执行状态,取指计数器清零,执行单元根据指令寄存器组的值执行相应操作,操作完成后发出执行完毕信号。同时检查指令寄存器组中NIP的值,如果非0,表明还有指令要执行,将NIP的值赋给取指单元,作为下一次取指的地址,进入取指状态,取下一个指令节点,如果NIP为0,表明整个指令链表执行完毕,发出中断信号,进入空闲状态。由于***中数据和指令共用一个片外存储器,因此需要一个选择器,选择器由状态机控制,在取指状态下,将取指单元的信号送MC,在执行状态下,将执行单元的信号送MC。
本发明将多个操作打包成指令链表,由硬件自动执行指令链表中的所有操作,对应多个操作只有一个中断,从根本上解决了中断次数过多引起软件负载加重的问题,方法实现简单,通用性强。
Claims (9)
1、一种减轻片上***软件负载的方法,其特征在于,采用链表原理,软件负责将多个操作指令组织成链表,并控制硬件的启动和复位,硬件启动后自动读入链表的每个节点,完成相应数据的操作,整个指令链表执行完毕后,发送一个中断信号。
2、根据权利要求1所述的减轻片上***软件负载的方法,其特征是,所述的将多个操作指令组织成链表,是指:将指令字和所有参数组成一个指令节点,一个节点对应一个操作,最后一项NIP是指向下一个节点的指针,存放下一个节点的起始内存地址,并约定如果此单元值为0表示该节点为链表的最后一个节点,多个节点组成一个指令链表。
3、根据权利要求1所述的减轻片上***软件负载的方法,其特征是,所述的软件控制硬件的启动和复位,是指:在HostIF中设置控制寄存器和寄存器HIP,控制寄存器用于控制I/O功能模块的启动和复位,HIP用于存放链表的头节点的指针。
4、根据权利要求1或者3所述的减轻片上***软件负载的方法,其特征是,所述的软件控制硬件的启动和复位,CPU执行的步骤如下:
1)准备指令链表,送入***RAM中;
2)设置好HIP;
3)在I/O功能模块就绪的情况下,设置控制寄存器,启动I/O功能模块。
5、根据权利要求3所述的减轻片上***软件负载的方法,其特征是,所述的I/O功能模块,其硬件主要由三部分组成:取指单元、执行单元和控制单元,取指单元负责从***存贮器中取出指令节点,存放到片内的寄存器中;执行单元根据取出节点的内容执行相应的操作;控制单元控制取指单元和执行单元的动作。
6、根据权利要求5所述的减轻片上***软件负载的方法,其特征是,所述的控制单元用状态机实现,该状态机共有三个状态:空闲、取指和执行,***上电后处于空闲状态,当模块收到启动信号后转到取指状态,否则保持空闲状态;在取指状态下,取指完毕后进入执行状态,否则保持取指状态;在执行状态下,当前节点指令执行完后检查NIP的值,如果NIP非0则又进入取指状态,否则进入空闲状态;在任何状态下复位信号有效后,都进入空闲状态。
7、根据权利要求6所述的减轻片上***软件负载的方法,其特征是,所述的状态机,在取指状态下,取指电路工作,从***存储器中取出一个节点的内容,并赋值给相应的寄存器;在执行状态下,执行电路根据刚才更新的寄存器的值进行相应操作;在空闲状态下,所有电路处于复位状态。
8、根据权利要求3或者5所述的减轻片上***软件负载的方法,其特征是,所述的I/O功能模块启动后,首先根据HIP的值,从***RAM中取出第一个节点的数据,进行第一个操作,操作完成后,根据NIP的值从***RAM中取出下一个节点的数据,进行下一个操作,直到NIP为0,整个指令链表都执行完后,发出中断信号,CPU在收到中断信号后,进行中断处理,发送下一个操作指令链表。
9、根据权利要求1所述的减轻片上***软件负载的方法,其特征是,所述的硬件启动后自动读入链表的每个节点,完成相应数据的操作,具体为:在取指单元中设置取指计数器,取指单元每读进一个数据取指计数器自动加一,在执行状态时,计数器清零,所以取指计数器的值对应当前数据在节点中的位置,能指导数据进入相应寄存器,并且当计数器的值等于节点的长度时,表明当前节点取指完毕,指导控制状态机跳转;执行单元在控制状态机的控制下执行指令,当执行完毕时向控制状态机发送“执行完毕”信号,由于***中数据和指令共用一个片外存储器,因此需要一个选择器,在状态机的控制下选择相应的信号送到存储控制器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100288880A CN1333344C (zh) | 2005-08-18 | 2005-08-18 | 减轻片上***软件负载的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100288880A CN1333344C (zh) | 2005-08-18 | 2005-08-18 | 减轻片上***软件负载的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1731358A true CN1731358A (zh) | 2006-02-08 |
CN1333344C CN1333344C (zh) | 2007-08-22 |
Family
ID=35963719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100288880A Expired - Fee Related CN1333344C (zh) | 2005-08-18 | 2005-08-18 | 减轻片上***软件负载的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1333344C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999434A (zh) * | 2011-09-15 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种内存管理方法及装置 |
CN104836710A (zh) * | 2015-02-10 | 2015-08-12 | 数据通信科学技术研究所 | 一种基于分布式***一主多从通信的方法与装置 |
CN114443525A (zh) * | 2020-11-06 | 2022-05-06 | 辰芯科技有限公司 | 一种数据处理***、方法、电子设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4768149A (en) * | 1985-08-29 | 1988-08-30 | International Business Machines Corporation | System for managing a plurality of shared interrupt handlers in a linked-list data structure |
JP2004537809A (ja) * | 2001-07-30 | 2004-12-16 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | システムオンチップ設計用の効率的な割り込みシステム |
GB2396445B (en) * | 2002-12-19 | 2005-12-21 | Advanced Risc Mach Ltd | An interrupt controller and interrupt controlling method for prioritizing interrupt requests generated by a plurality of interrupt sources |
CN1312600C (zh) * | 2003-07-09 | 2007-04-25 | 明基电通股份有限公司 | 用于减少对处理器的中断次数的控制装置及方法 |
CN1277161C (zh) * | 2003-12-12 | 2006-09-27 | 中兴通讯股份有限公司 | 可编程中断控制器 |
-
2005
- 2005-08-18 CN CNB2005100288880A patent/CN1333344C/zh not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999434A (zh) * | 2011-09-15 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种内存管理方法及装置 |
CN104836710A (zh) * | 2015-02-10 | 2015-08-12 | 数据通信科学技术研究所 | 一种基于分布式***一主多从通信的方法与装置 |
CN104836710B (zh) * | 2015-02-10 | 2018-06-05 | 数据通信科学技术研究所 | 一种基于分布式***一主多从通信的方法与装置 |
CN114443525A (zh) * | 2020-11-06 | 2022-05-06 | 辰芯科技有限公司 | 一种数据处理***、方法、电子设备及存储介质 |
WO2022095179A1 (zh) * | 2020-11-06 | 2022-05-12 | 辰芯科技有限公司 | 数据处理***、方法、电子设备及存储介质 |
CN114443525B (zh) * | 2020-11-06 | 2023-08-15 | 辰芯科技有限公司 | 一种数据处理***、方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN1333344C (zh) | 2007-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6820187B2 (en) | Multiprocessor system and control method thereof | |
CN101238441B (zh) | 计算装置中的可抢占语境切换方法 | |
US6553487B1 (en) | Device and method for performing high-speed low overhead context switch | |
JP2001350638A (ja) | 多重スレッド使用方法、多重スレッド処理システム、スレッド実行コントローラおよびバッファ使用方法 | |
EP0409285B1 (en) | Method and apparatus for data transfer between processor elements | |
JPS6027964A (ja) | メモリアクセス制御回路 | |
CN1983196A (zh) | 用于将执行线程分组的***和方法 | |
CN1808374A (zh) | 一种现场可编程门阵列的加载方法 | |
CN1287296C (zh) | 减少快取储存器标签阵列存取动作的***及其方法 | |
CN1731358A (zh) | 减轻片上***软件负载的方法 | |
CN101064192A (zh) | 一种访问与非型闪存的***及方法 | |
CN1661586A (zh) | 一种基于arm的pc104嵌入式计算机 | |
CN203455832U (zh) | 一种电子设备 | |
CN114610472A (zh) | 异构计算中多进程管理方法及计算设备 | |
CN1758208A (zh) | 对挂接在片外单总线上的多种存储器进行访问的方法 | |
CN100432968C (zh) | 存储器直接存取装置及其数据传输方法 | |
CN1591290A (zh) | 获取物理层芯片状态信息的方法及装置 | |
CN1120423C (zh) | 微处理器和can控制器的接口方法 | |
CN1121649C (zh) | 数据存取控制装置和方法 | |
CN1097783C (zh) | 数据处理的***和方法以及带有这类***的通信*** | |
US20080181254A1 (en) | Data transmission method | |
CN1595372A (zh) | 一种改进bios执行的方法 | |
CN2777637Y (zh) | 一种基于arm微处理器的pc104嵌入式计算机 | |
JPS592058B2 (ja) | 記憶装置 | |
CN113094170B (zh) | 一种5g通信虚拟化网元的内存总线分配方法和终端 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070822 Termination date: 20110818 |