CN1731358A - 减轻片上系统软件负载的方法 - Google Patents

减轻片上系统软件负载的方法 Download PDF

Info

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
Application number
CN 200510028888
Other languages
English (en)
Other versions
CN1333344C (zh
Inventor
朱建清
郑世宝
顾亮
王峰
张文军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CNB2005100288880A priority Critical patent/CN1333344C/zh
Publication of CN1731358A publication Critical patent/CN1731358A/zh
Application granted granted Critical
Publication of CN1333344C publication Critical patent/CN1333344C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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所述的减轻片上系统软件负载的方法,其特征是,所述的硬件启动后自动读入链表的每个节点,完成相应数据的操作,具体为:在取指单元中设置取指计数器,取指单元每读进一个数据取指计数器自动加一,在执行状态时,计数器清零,所以取指计数器的值对应当前数据在节点中的位置,能指导数据进入相应寄存器,并且当计数器的值等于节点的长度时,表明当前节点取指完毕,指导控制状态机跳转;执行单元在控制状态机的控制下执行指令,当执行完毕时向控制状态机发送“执行完毕”信号,由于系统中数据和指令共用一个片外存储器,因此需要一个选择器,在状态机的控制下选择相应的信号送到存储控制器。
CNB2005100288880A 2005-08-18 2005-08-18 减轻片上系统软件负载的方法 Expired - Fee Related CN1333344C (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
EP1415233A1 (en) * 2001-07-30 2004-05-06 Koninklijke Philips Electronics N.V. Efficient interrupt system for system on chip design
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 中兴通讯股份有限公司 可编程中断控制器

Cited By (6)

* Cited by examiner, † Cited by third party
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
KR970067231A (ko) 씨디-롬 드라이브에서의 큐잉 제어방법
WO2003098392A2 (en) Out of order dram sequencer
JP2001350638A (ja) 多重スレッド使用方法、多重スレッド処理システム、スレッド実行コントローラおよびバッファ使用方法
EP0409285B1 (en) Method and apparatus for data transfer between processor elements
JPS6027964A (ja) メモリアクセス制御回路
CN1808374A (zh) 一种现场可编程门阵列的加载方法
CN1287296C (zh) 减少快取储存器标签阵列存取动作的系统及其方法
US5317745A (en) Minimal interrupt latency scheme using multiple program counters
CN1731358A (zh) 减轻片上系统软件负载的方法
CN114610472B (zh) 异构计算中多进程管理方法及计算设备
CN101064192A (zh) 一种访问与非型闪存的系统及方法
CN203455832U (zh) 一种电子设备
CN1758208A (zh) 对挂接在片外单总线上的多种存储器进行访问的方法
EP0373790A2 (en) Data processing apparatus for saving and restoring
CN1719427A (zh) 存储器直接存取装置及其数据传输方法
CN1591290A (zh) 获取物理层芯片状态信息的方法及装置
CN1120423C (zh) 微处理器和can控制器的接口方法
CN1121649C (zh) 数据存取控制装置和方法
CN1097783C (zh) 数据处理的系统和方法以及带有这类系统的通信系统
US20080181254A1 (en) Data transmission method
CN1595372A (zh) 一种改进bios执行的方法
CN2777637Y (zh) 一种基于arm微处理器的pc104嵌入式计算机

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