CN101727433B - 一种处理器结构 - Google Patents
一种处理器结构 Download PDFInfo
- Publication number
- CN101727433B CN101727433B CN2008102168586A CN200810216858A CN101727433B CN 101727433 B CN101727433 B CN 101727433B CN 2008102168586 A CN2008102168586 A CN 2008102168586A CN 200810216858 A CN200810216858 A CN 200810216858A CN 101727433 B CN101727433 B CN 101727433B
- Authority
- CN
- China
- Prior art keywords
- data
- configuration
- register
- configuration information
- instruction
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种处理器结构,包括算法数据控制部件和至少一个用于对数据进行存储或读出操作的存储部件,所述存储部件包括存储单元和配置寄存器,所述算法数据控制部件执行配置指令,将配置信息写入指令中指定的存储部件的配置寄存器,所述存储部件根据其自身配置寄存器中的配置信息进行数据存取。本发明可方便地进行数据存取操作,尤其适用于对大规模数据流或数据段处理的情况。同时,本发明具有良好的算法保密性。
Description
【技术领域】
本发明涉及集成电路设计领域,具体涉及一种可配置存储部件和数据通路的处理器结构。
【背景技术】
随着集成电路制造工艺进入90nm-45nm阶段,复杂算法(如数字媒体和无线通信算法等)的ASIC(Application Specific Integrated Circuit,即专用集成电路)实现,面临设计周期长、设计成本高、灵活性差、扩展性差,难以满足产品快速上市、功能不断提升的需求。因此,基于支持存储指令控制的处理器来实现复杂算法,就显得越来越重要。
算法可以分解为一系列的运算和存储的组合,然而,一般处理器和指令系统的设计方法,并没有考虑支持复杂算法的存储功能的实现。即使有存储功能指令设计的,也是采用load,store指令。这种指令需要程序员提供地址进行一次操作,比如对地址001存数据1,则需要一条store指令,但是如果对一系列数据,比如001-111这一段地址连续进行数据1-16的存储操作时,需要store指令中地址的自动增加,这往往需要一段指令的循环,或用16条store指令完成,这种方案对于数据段的存取操作增加了操作的复杂性。
同时,基于一般处理器指令系统的算法设计,程序代码的语义明确,比较容易被抄袭,难以保护设计者的智力劳动成果。
【发明内容】
本发明的主要目的就是解决现有技术中的问题,提供一种处理器结构,能够支持算法的存储功能,操作简便并具有良好的算法保密性。
为实现上述目的,本发明提供一种处理器结构,包括算法数据控制部件和至少一个用于对数据进行存储或读出操作的存储部件,所述存储部件包括存储单元和配置寄存器,所述算法数据控制部件执行配置指令,将配置信息写入指令中指定的存储部件的配置寄存器,所述存储部件根据其自身配置寄存器中的配置信息进行数据存取。
所述配置指令包含操作码、配置信息和配置目的三个操作元素,所述操作码为规定指令所执行操作的命令码,所述配置信息为指令操作的对象,所述配置目的用于指定写入配置信息的配置寄存器。
在一种实施例中,所述存储部件还包括分别连接该存储部件的配置寄存器和存储单元的地址产生器,所述地址产生器根据所述配置寄存器中的配置信息设定所述存储单元存取数据的地址基址、跳变步长和跳变次数。
在另一种实施例中,所述存储部件还包括至少一个分别连接该存储部件的配置寄存器和存储单元的格式转换器,根据所述配置寄存器中的配置信息选择相应的格式转换器,将外部数据转化为针对该存储单元存取的格式。
本发明的有益效果是:本发明非常简单,不需要复杂的译码逻辑,可简化硬件结构,但可支持复杂的存储功能。在需要增加存储功能和存储部件时,不需要对指令系统进行修改和增加,只需定义新增配置信息即可。同时,本发明的指令系统与现有技术中的具有确定性语义的指令不同,本发明的配置指令中包含操作码、配置信息和配置目的三个操作元素,不同的配置信息来源和不同的配置目的,可产生不同的语义,可能同样的指令完成不同的配置,所以本发明具有良好的算法保密性。
【附图说明】
图1是本发明一种实施例中处理器结构中ADU的硬件模块框图;
图2是本发明存储部件的结构框图;
图3是本发明一种实施例的配置硬件框图。
【具体实施方式】
本申请的特征及优点将通过实施例结合附图进行详细说明。
实施例一:
处理器中包括算法数据控制部件(简称ADU,algorithm and datacontrol unit)、用于选择数据输入或输出路径的数据通路和至少一个用于对数据进行存储或读出操作的存储部件。ADU负责执行配置指令,对数据通路的数据路径和存储部件的存取功能进行配置。
所述ADU可以理解为是一个不包括运算部件的只有几条指令的处理器,在一种实施例中,算法数据控制部件ADU包括加载模块、指令存储器、数据存储器、译码器、和通用寄存器,还可以进一步包括定时或计数器等模块。如图1所示为算法数据控制部件ADU10的一种具体结构,模块1为程序计数器PC,用来指示当前运行程序的地址;模块2和3分别代表数据存储器DMEM和指令存储器IMEM,分别用来存储数据和指令,当然也可以采用一个存储器存储数据和指令;模块4是译码单元,用做分析指令含义,解释指令行为;模块6为通用寄存器组,用于存储数据或指令;模块7表示加载模块。加载模块7从外部端口加载数据存入数据存储器DMEM或指令存储器IMEM。当加载模块7加载的是数据时,加载模块将数据从输入端口加载至数据存储器dmem,当加载模块7加载的是指令时,载模块将指令从输入端口加载至指令存储器imem,通过PC模块提供的地址将从指令存储器中选择对应指令进行操作。
每个存储部件包括存储单元和配置寄存器,所述算法数据控制部件执行配置指令,将配置信息写入指令中指定的存储部件的配置寄存器,所述存储部件根据其自身配置寄存器中的配置信息进行数据存取。
如图2所示,在一种具体的实施例中,存储部件包括存储单元、配置寄存器和地址产生器,地址产生器分别连接该存储部件的配置寄存器和存储单元,所述地址产生器根据所述配置寄存器中的配置信息设定所述存储单元存取数据的地址基址(即存取数据的初始地址)、跳变步长和跳变次数,根据地址基址,跳变步长,跳变次数可确定数据存取的实际物理地址。例如,需要存储1-16的一个数据段时,地址产生器可根据配置信息,产生出存储数据的地址基址,控制数据从存储单元的该地址开始存储,并以跳变步长为1,跳变15次,直到将最后一个数据存入。采用这种方式存取数据,可以通过地址产生器根据配置信息中的内容自动产生一大段有规律的地址,而面对DSP算法,大段数据的存取都是有规律的,如地址自增1,自增2等。这样可以只需要执行一次指令,即可对一段数据进行存取操作,而不需要重复执行16条指令或进行一段指令的循环,从而简化了操作,尤其是对流处理或者大块数据存取的操作比较方便,不用每次存取都由程序员控制给出地址。
因存储单元可以是FLASH,EEPROM或SRAM等任意一种存储介质,不同的存储介质进行存储的方式不同,为通过配置将相同的输入数据格式转化为不同存储器的读写数据格式,在另外的具体实施例中,存储部件还可以包括至少一个分别连接该存储部件的配置寄存器和存储单元的格式转换器,将所述配置寄存器中的配置信息进行译码,选择相应的格式转换器,通过该格式转换器将外部数据转化为针对该存储单元存取的格式。例如,EEPROM是串行数据存取,和SRAM的存取方式不同,则需要对数据进行一定的打包或解包等转换操作才能进行存取,而转换操作就由格式转换器完成。不同的存储器需要不同的格式转换器,因而在该实施例中,可设置多种格式转换器,并根据配置信息在多种格式转换器中进行选择。
如图3所示为处理器的一种具体结构,为方便说明,本图中存储部件仅画了两个,存储部件可以有多个,可根据具体需要设计。图中模块10表示处理器中的ADU单元,该单元负责执行本发明中的一系列指令;ADU单元10执行配置指令,对数据通路和存储部件30的存取功能进行配置。所述数据通路包括数据输入通路20(简称Switch)和输出选择单元40,所述数据输入通路20包括数据输入交换开关21和配置寄存器22,所述输出选择单元40包括数据输出转换开关42和输出端口配置寄存器41。ADU单元10根据配置指令,将配置信息写入指令中指定的数据通路的配置寄存器,所述数据输入通路20根据其自身配置寄存器22中的配置信息控制数据输入交换开关21的切换,所述输出选择单元40根据其自身配置寄存器41中的配置信息控制数据输出转换开关42的切换。即将配置信息作为控制信号,控制开关的切换。数据输入通路20连接输入端口60和ADU单元10中的通用寄存器,数据的输入来源可以ADU单元10中的通用寄存器,还可以是输入端口60。输出选择单元40连接输出端口50和ADU单元10中的通用寄存器,数据的输出路径可以是通过输出端口50输出,也可以输出到通用寄存器。存储部件30的结构可以采用上述任一种结构,ADU单元10执行配置指令,将配置信息写入其配置寄存器31中,存储部件30根据配置信息将数据存入存储单元MEM中,或将数据从存储单元MEM中读出。
配置指令包含操作码、配置信息和配置目的三个操作元素,所述操作码为规定指令所执行操作的命令码,所述配置信息为指令操作的对象,所述配置目的用于指定写入配置信息的配置寄存器。所述操作码、配置信息和配置目的可由用户设置,配置指令的格式和位宽不限,可根据实际情况进行调整格式和位宽。所述配置信息可以为通用寄存器中的内容,也可以是立即数或数据存储器的内容或输入端口的寄存器的内容。例如:
Movesc reg,configreg:
该指令将通用寄存器reg中的数据写入指定的配置寄存器,该配置寄存器直接完成相应的运算部件的功能或数据通路的路径配置。
作为该类指令的变种,在指令位宽允许的情况下,也可将上述指令中的通用寄存器reg改为立即数imm,即Movesc imm,configreg。将imm直接写入指定的配置寄存器。
立即数imm也可表示数据存储器的地址,将对应地址的数据存储器的数据作为配置信息,立即数还可以是具体的操作或数值。
上述配置寄存器中数据所代表的配置含义,即指定的运算操作或数据路径,可以根据需要定制,从而使非法的程序代码获取者无法破译实际执行的算法。
Movesd reg,datareg:
该指令将通用寄存器reg中的数据写入指定的数据寄存器。
作为该指令的变种,该指令中的reg可以是处理器的数据输入端口寄存器,即将处理器的数据输入端口寄存器的值写入指定的数据寄存器,配置指令为:Input port,datareg。同样,该指令中的datareg可以指处理器的数据输出端口寄存器,即将处理器的通用寄存器的值写入指定的数据输出端口寄存器,配置指令为:Output reg,port。
需要存入数据时,配置数据输入通路20的数据路径,相应的指令为:movesc reg configreg,其中configreg用于配置数据输入通路20中的数据路径,即选择交换开关。数据输入通路20根据其配置寄存器22中的配置信息,选择数据的输入来源,数据在数据输入通路20的数据寄存器23中进行暂存后输入到某个指定的存储部件30中。配置存储部件簇各存储部件30的存储功能,相应的指令为:movesc reg configreg,其中configreg用于配置存储部件30的存储功能,存储部件30根据其配置寄存器31中的配置信息,从地址基址按照跳变步长和跳变次数存入数据。并配置和管理数据输入和输出端口。
按一定的时间和顺序重复上述步骤,即是实现算法的程序,便可完成预定算法的存储功能。
需要读出数据时,存储部件30根据其配置寄存器31中的配置信息,从地址基址按照跳变步长和跳变次数读出数据,并输出数据到输出选择单元40,输出选择单元40根据其配置寄存器41中的配置信息,选择数据的输出路径。
以上可知,利用该配置指令及其硬件实现,可方便地进行数据存取操作,尤其适用于对大规模数据流或数据段处理的情况,有利于级联或阵列结构的实现方式,每个处理器都可通过配置指令完成不同的存储功能,特别是针对数字信号处理的阵列。
本发明仅需通过简单的配置指令即可完成各种复杂的存储操作,从指令设计上来看各功能单元执行的指令基本相同,而通过配置信息的不同却可完成不同的操作。例如同样的movesc指令,根据所写的配置寄存器不同而配置不同步骤的功能实现;因此,本发明中的指令具有加密性,各系统设计厂商可根据实际情况自定义配置信息的语义,从而得到自定义的指令系统,并可有效保护自主知识产权。
实施例二、
本实施例是在上述实施例基础上的进一步改进。
在进行数据流或数据段处理时,存在两种情况:
1)当ADU单元执行完一个指令(例如该指令是存入一个数据段)后,需要等待存储部件操作完成后才可以执行下一条指令(例如下一条指令是存入另一个数据段)。
2)当处理单元a需要从另两个处理单元b和c取数再进行运算时,会出现其中一个处理单元b的数据到得比较早,另外一个处理单元c数据到得比较晚(由于两个处理器工作任务不同,很容易造成数据到达时间上的不统一),处理单元a会将处理单元b和一个空数据发生有效操作,而导致计算错误。
为解决上述两个问题,本实施例定义了控制处理器暂停的暂停指令,所述暂停指令包括操作码和暂停时间计数信息两个操作元素,其一种格式是:
Rouser #imm;
在处理器对数据流进行处理时ADU执行暂停指令,控制处理器处于暂停状态,启动定时器计时或计数器计数,同时使处理器处于暂停状态,使所述数据通路和/或存储部件的配置信息保持不变,直到接收到恢复信息。这段时间内,ADU单元不执行指令,输出数据比较快的处理单元也处于等待状态。当计时或计数完成时,处理器中各部分恢复正常运行状态。
该指令也可写为rouser reg的形式,这时reg中的值取代imm。
暂停指令还可以是以下格式:
HLT;
该指令作为rouser指令的特殊形式,即当ADU执行该指令时,将暂停处理器的工作,直到被其他信号(如中断信号等)唤醒。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种处理器结构,包括算法数据控制部件和至少一个用于对数据进行存储或读出操作的存储部件,其特征在于:所述存储部件包括存储单元和配置寄存器,所述算法数据控制部件执行配置指令,将配置信息写入指令中指定的存储部件的配置寄存器,所述存储部件根据其自身配置寄存器中的配置信息进行数据存取,所述存储部件还包括分别连接该存储部件的配置寄存器和存储单元的地址产生器,所述地址产生器根据所述配置寄存器中的配置信息设定所述存储单元存取数据的地址基址、跳变步长和跳变次数。
2.如权利要求1所述的处理器结构,其特征在于:所述配置指令包含操作码、配置信息和配置目的三个操作元素,所述操作码为规定指令所执行操作的命令码,所述配置信息为指令操作的对象,所述配置目的用于指定写入配置信息的配置寄存器。
3.如权利要求2所述的处理器结构,其特征在于:所述操作码、配置信息和配置目的可由用户设置,所述指令的位宽可根据实际情况进行调整。
4.如权利要求1至3中任一项所述的处理器结构,其特征在于:所述存储部件还包括至少一个分别连接该存储部件的配置寄存器和存储单元的格式转换器,根据所述配置寄存器中的配置信息选择相应的格式转换器,将外部数据转化为针对该存储单元存取的格式。
5.如权利要求1至3中任一项所述的处理器结构,其特征在于:所述处理器还包括用于选择数据输入或输出路径的数据通路,所述数据通路包括数据输入通路和输出选择单元,所述数据输入通路包括数据输入交换开关和配置寄存器,所述输出选择单元包括数据输出转换开关和输出端口配置寄存器,所述算法数据控制部件还根据配置指令,将配置信息写入指令中指定的数据通路的配置寄存器,所述数据输入通路根据其自身配置寄存器中的配置信息控制数据输入交换开关的切换,所述输出选择单元根据其自身配置寄存器中的配置信息控制数据输出转换开关的切换。
6.如权利要求1至3中任一项所述的处理器结构,其特征在于:所述算法数据控制部件包括加载模块和通用寄存器,所述加载模块用于从外部端口加载指令或数据并存入通用寄存器,所述配置信息为通用寄存器中的内容、立即数或数据存储器中的内容。
7.如权利要求1至3中任一项所述的处理器结构,其特征在于:所述算法数据控制部件还执行暂停指令,控制处理器处于暂停状态,并使所述存储部件的配置信息保持不变,直到接收到恢复信息。
8.如权利要求7所述的处理器结构,其特征在于:所述恢复信息为从执行暂停指令开始计时或计数完成的信息或中断信号。
9.如权利要求7所述的处理器结构,其特征在于:所述暂停指令包括操作码和暂停时间计数信息两个操作元素。
10.如权利要求8所述的处理器结构,其特征在于:所述暂停指令包括操作码和暂停时间计数信息两个操作元素。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102168586A CN101727433B (zh) | 2008-10-20 | 2008-10-20 | 一种处理器结构 |
US13/121,406 US20110271078A1 (en) | 2008-09-28 | 2008-12-15 | Processor structure of integrated circuit |
PCT/CN2008/073514 WO2010034167A1 (zh) | 2008-09-28 | 2008-12-15 | 一种集成电路的处理器结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102168586A CN101727433B (zh) | 2008-10-20 | 2008-10-20 | 一种处理器结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101727433A CN101727433A (zh) | 2010-06-09 |
CN101727433B true CN101727433B (zh) | 2012-04-25 |
Family
ID=42448336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102168586A Expired - Fee Related CN101727433B (zh) | 2008-09-28 | 2008-10-20 | 一种处理器结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101727433B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1526100A (zh) * | 2001-07-12 | 2004-09-01 | IP�����ɷ�����˾ | 集成电路装置 |
-
2008
- 2008-10-20 CN CN2008102168586A patent/CN101727433B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1526100A (zh) * | 2001-07-12 | 2004-09-01 | IP�����ɷ�����˾ | 集成电路装置 |
Non-Patent Citations (1)
Title |
---|
JP特开2007-304802A 2007.11.22 |
Also Published As
Publication number | Publication date |
---|---|
CN101727433A (zh) | 2010-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102279818B (zh) | 支持有限共享的向量数据访存控制方法及向量存储器 | |
RU2015103934A (ru) | Процессор компьютера и система без арифметико-логического блока | |
CN102221991B (zh) | 一种4位risc微控制器 | |
CN101727434B (zh) | 一种特定应用算法专用集成电路结构 | |
CN102262611B (zh) | 一种16位的risc cpu系统结构 | |
US11023277B2 (en) | Scheduling of tasks in a multiprocessor device | |
CN101334651A (zh) | 可编程控制器及其通道选择方法 | |
CN101313290B (zh) | 对仅m×n位外围设备执行n位写入访问的系统和方法 | |
CN102621960A (zh) | 一种基于ARM-Linux的编译型PAC | |
CN101739383B (zh) | 一种可配置处理器体系结构和控制方法 | |
CN102629238B (zh) | 支持向量条件访存的方法和装置 | |
CN101685389B (zh) | 一种处理器 | |
CN101196808A (zh) | 一种8位微控制器 | |
CN101727433B (zh) | 一种处理器结构 | |
CN103460181A (zh) | 集成电路器件和执行其位操纵的方法 | |
CN102520913A (zh) | 基于分组更新历史信息的并行分支预测装置 | |
KR101334111B1 (ko) | 쿼드 데이터 레이트(qdr) 제어기 및 그의 실현방법 | |
KR100472706B1 (ko) | 복수의 독립 전용 프로세서를 갖는 디지털 신호 프로세서 | |
EP4020216A1 (en) | Performance circuit monitor circuit and method to concurrently store multiple performance monitor counts in a single register | |
CN204965422U (zh) | 一种多协议密码算法处理器及片上系统 | |
US20110271078A1 (en) | Processor structure of integrated circuit | |
CN103293373A (zh) | 电能计量装置及其电能计量芯片 | |
JPS594049B2 (ja) | コンピュ−タ装置 | |
CN101221494B (zh) | 一种8位risc微控制器构架 | |
CN101315598B (zh) | 处理器 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120425 Termination date: 20181020 |
|
CF01 | Termination of patent right due to non-payment of annual fee |