CN1716181A - 可动态配置协处理器数目的系统 - Google Patents
可动态配置协处理器数目的系统 Download PDFInfo
- Publication number
- CN1716181A CN1716181A CN 200410061930 CN200410061930A CN1716181A CN 1716181 A CN1716181 A CN 1716181A CN 200410061930 CN200410061930 CN 200410061930 CN 200410061930 A CN200410061930 A CN 200410061930A CN 1716181 A CN1716181 A CN 1716181A
- Authority
- CN
- China
- Prior art keywords
- coprocessor
- instruction
- field
- dynamic
- configuration
- 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
Images
Landscapes
- Advance Control (AREA)
Abstract
本发明是一种可动态配置协处理器数目的系统,使用一协处理器指令作为一主处理器与至少一协处理器之间的指令,该系统包括复数个协处理器及一处理器。复数个协处理器协助该处理器进行特定的运算,该处理器系统执行复数个指令以进行数据运算,并使用协处理器指令与该复数个协处理器进行沟通及数据传收,其中,该协处理器指令至少包含一可重新调整的协处理器指令字段,该可重新调整的协处理器指令字段可为包含协处理器编码和协处理器功能编码和协处理器寄存器字段、或包含协处理器编码和协处理器寄存器字段。
Description
技术领域
本发明涉及一种具有协处理器的嵌入式系统,尤指适用于一种可动态配置协处理器数目的系统。
背景技术
一般便携式电子装置由于具有高度的机动性,因此已逐渐受到使用者的喜好,而一般使用者对于例如个人数字助理(PDA)便携式电子装置的运算处理能力要求不高,仅需具有例如记事管理、文字翻译、四则运算的功能即可。该等便携式电子装置采用嵌入式系统予以建构。一般嵌入式系统采用ARM7、ARM9或StrongARM等处理器以达到省电的功能。其所使用的处理器与通用型微处理器的最大差异乃在于其运算能力较差、时脉较慢以及无多媒体处理指令。而为了加强某些领域的应用,嵌入式系统乃使用协同微处理器(通称:协处理器)以配合主处理器,以强化某些领域的功能。例如,使用具有MP3译码功能的协处理器以配合处理器,则嵌入式系统可提供较有效率MP3译码及完善的播放功能,或是使用具有MPEG4译码功能的协处理器以配合处理器,则嵌入式系统可提供较完善的多媒体影片播放功能。
图1所示为一已知的嵌入式系统100。其包括:主处理器110、第一协处理器120、第二协处理器130、及存储器140。主处理器110用以提供嵌入式系统100一般的运算处理功能。第一协处理器120用以提供嵌入式系统100额外的运算处理功能,例如:MP3播放功能。第二协处理器130用以提供嵌入式系统100额外运算处理的功能,例如:多媒体影片播放功能。存储器140用以提供数据储存的功能。第一协处理器120及第二协处理器130与存储器140之间,并无直接的连结,无法直接存取存储器140。
图1显示大部分的主处理器和协处理器的接口(CoprocessorInterface Architecture)示意图。一般而言,协处理器指令(coprocessorinstruction)的运作步骤为:主处理器110对存储器140产生一指令撷取要求,主处理器110于译码阶段(decoder stage)传送一协处理器指令(Coprocessor Instruction)至协处理器接口,协处理器在译码阶段或是下一阶段译码该协处理器指令,以确认该协处理器指令是否属于该协处理器,若属于该协处理器,其会传送一确认信号(ACK)至该主处理器110,此时该主处理器110会经由协处理器接口完成协处理器指令。若是没有协处理器传送一确认信号(ACK)至该主处理器110,该主处理器110会进入一个未定指令例外(undefined instruction exception)。
一般主处理器的协处理器指令(Coprocessor Instruction)可分为三种:第一种为搬移主处理器的寄存器内容值至协处理器中的寄存器内,如MCR、MRC(MTC/MFC)等指令。第二种为存储器与协处理器寄存器之间的数据搬移,如STC、LDC等指令。第三种为协处理器的数据运算,如CDP、COP等指令。
上述三类指令定义一个协处理器的基本运算能力及和主处理器之间数据交换的方法。大部分的处理器的协处理器指令格式(CoprocessorInstruction Format)如图2所示。一个应用该处理器的嵌入式系统会针对协处理器指令格式而限定其协处理器的硬件和软件的设计。例如图2中的CoProc#字段为4位元,其限定一个嵌入式系统的协处理器数目为十六个。而OPcode字段为4位元,亦决定一个协处理器的运算功能指令数目为十六个。
大部分的协处理器指令皆有协处理器数目(coprocessor number、CoProc#)和协同处理运算码(coprocessor op-code、Opcode)两个字段(Field),各为固定的位元数(四个位元)。也就是说一个嵌入式系统最多可以有固定的数目(十六个)的协处理器(Coprocessor),每一个协处理器(Coprocessor)最多只可以有固定的数目(十六种)的功能指令(opcode)。同时一个协处理器(Coprocessor)最多只可以有固定的数目(十六个)的寄存器(Register)。因每一个协处理器,在一嵌入式系统中具有唯一的识别码(ID)以供识别,因此,当该嵌入式系统需求协处理器的数量高于固定的数目上限(十六个)时,在先前技术的处理器的系统是无法处理的。
同时,当有单一协处理器的功能指令(opcode)高于固定的数目上限(十六个)的需求时,在先前技术的处理器的系统是需要将单一协处理器设计成数个各自独立的硬件的协处理器。此时,在软件程序撰写时必须将其视为有数个协处理器存在,这会增加软件的复杂度,同时因为必须设计更多个协处理器,也同时增加硬件设计的复杂度,这将造成一嵌入式系统开发时的许多困扰,故现有技术中的协处理器的设计仍有予以改进的必要。
发明内容
本发明的主要目的在于提供一种可动态配置协处理器数目的系统,以达到在设计开发协处理器时,协处理器的功能编码及其协处理器的数目可以弹性调整,这可以加速硬件接口及软件程序的开发。
为达成上述目的,本发明提供一种可动态配置协处理器数目的系统,其使用一协处理器指令以作为一主处理器与至少一协处理器之间的指令,该系统包括复数个协处理器(coprocessor)及一主处理器。复数个协处理器(coprocessor)协助该主处理器进行特定的运算;该处理器执行复数个指令以进行数据运算,并使用协处理器指令(coprocessorinstruction)与该复数个协处理器进行沟通及数据传收;其中,该协处理器指令包含一可重新调整的协处理器指令字段(RearrangedCoprocessor Instruction field)及一个主指令编码字段(Main InstructionOP-Code field),该可重新调整的协处理器指令字段可为包含协处理器编码(Coprocessor Number)、协处理器功能编码(Coprocessor op-codenumber)和协处理器寄存器(Coprocessor Register)的字段,或包含协处理器编码(Coprocessor Number)和协处理器寄存器(Coprocessor Register)的字段。
附图说明
图1为已知的嵌入式系统的架构图。
图2为已知的协处理器指令格式的示意图。
图3为本发明协处理器指令格式的示意图。
图4为已知的单精度协处理器指令编码的示意图。
图5为已知的倍精度协处理器指令编码的示意图。
图6为使用本发明技术的一实施例。
图7为使用本发明技术的另一实施例。
图中符号说明:
100嵌入式系统 110主处理器
120第一协处理器 130第二协处理器
140存储器
具体实施方式
本发明的可动态配置协处理器数目的系统,使用一协处理器指令以作为一主处理器与至少一协处理器之间的指令,此系统包括复数个协处理器(coprocessor)以及一处理器。该复数个协处理器协助该处理器进行特定的运算。该处理器执行复数个指令以进行数据运算,并使用协处理器指令(coprocessor instruction)与该复数个协处理器进行沟通及数据传收,其中,该协处理器指令包含一可重新调整的协处理器指令字段(Rearranged Coprocessor Instruction field)及一个主指令编码字段(Main Instruction OP-Code field)。该可重新调整的协处理器指令字段可为包含协处理器编码(Coprocessor Number)、协处理器功能编码(Coprocessor op-code number)和协处理器寄存器(Coprocessor Register)的字段,或包含协处理器编码(Coprocessor OP Number)和协处理器寄存器(Coprocessor Register)的字段。
图3为本发明的协处理器指令(Coprocessor Instruction)的三种格式:第一种为搬移主处理器的寄存器内容值至协处理器中的寄存器内,如MTC/MFC等指令。第二种为存储器与协处理器寄存器之间的数据搬移,如STC/LDC等指令。第三种为协处理器的数据运算,如COP等指令。如图所示,LDC/STC/MTC/MFC等非数据运算指令包含协处理器编码(Coprocessor Number、CP#)和协处理器寄存器(Coprocessor Register简称CrD)的字段,而COP等数据运算指令包含协处理器编码(Coprocessor Number缩写CP#)、协处理器功能编码(Coprocessor op-code number简称COP-Code)和协处理器寄存器(Coprocessor Register缩写为CrA,CrB,CrD)的字段。
本发明重新安排协处理器指令(Coprocessor Instruction)的格式,如图3斜字段线所示,其将LDC/STC/MTC/MFC等指令中的协处理器编码(Coprocessor Number、CP#)和协处理器寄存器(CoprocessorRegister、CrD)的字段,或COP等指令中的协同处理器编码(CoprocessorNumber、CP#)、协处理器功能编码(Coprocessor op-code number、COP-Code)和协处理器寄存器(Coprocessor Register、CrD)的字段结合为一个可重新调整的协处理器指令字段(Rearranged CoprocessorInstruction field)。
依据图3的协处理器指令格式,一由使用该协处理器指令格式的主处理器所建构的嵌入式系统具有的资源为:最多有4个协处理器,且协处理器最多有32个寄存器及32个协处理器功能编码。
若该嵌入式系统需要一个具有包括单精度和倍精度浮点运算功能的协处理器的来处理完整的浮点运算指令时,其所需的协处理器的功能编码会多于32种,而所需的协处理器寄存器为则小于16个。如使用已知技术的协处理器指令格式,该嵌入式系统则需两个独立协处理器,一为单精度的协处理器,另一为倍精度的协处理器,两者各有16个寄存器,其编码格式的如图4和图5所示。
通过本发明的技术,将协处理器寄存器(Coprocessor Register)、协处理器功能编码(COP-Code)及协处理器编码(CP#)三个字段视为一个可重新调整的协处理器指令字段(Rearranged Coprocessor InstructionField),如此可以将这两个原本需为独立设计的协处理器,结合成只需单一个协处理器的硬件设计,同时其协处理器指令格式重新编码(如图6所示)。且其协处理器的运作方式并不会有任何的改变。
对于使用图4和图5方式编码的协处理器,在一个系统里将会占用两个协处理器。对于使用图6的方式编码的协处理器,在一个系统里将只会占用一个协处理器。但实体的硬件设计上,图6编码方式的协处理器将协处理器寄存器(CrD)的最高有效位(MSB)当成协处理器运算编码的一个位元来编码。因协处理器所需的协处理器寄存器不会高于16个。这个部分的设计变更,只需在设计该协处理器的指令译码器时做些微变更即可,亦即,仅需将协处理器寄存器(CrD)的最高有效位元(MSB)加入协处理器的指令译码电路即可,且其协处理器的运作方式并不有任何的改变。
图6所示的具有单精度和倍精度浮点运算功能的协处理器,当使用相同的可重新调整的协处理器指令字段编码时,在该系统进行整合时,使用静态(device enable jumper)的方式来决定,以使同一时间点上,该系统的可重新调整的协处理器指令字段编码是唯一的。该具有单精度和倍精度浮点运算功能的协处理器,亦可在该系统进行动态运作时,使用动态通过装置致能(Device Enable Register)的方式来决定,在同一时间点上,使该系统的可重新调整的协处理器指令字段编码是唯一的。
协处理器指令的执行和运作是经由主处理器和协处理器的配合,经由协处理器的介面(接口)来完成指令的运作。主处理器在处理协处理器指令时,主要的关键是:目前的指令是否为协处理器指令、是否有协处理器会响应此协处理器指令、及协处理器指令的种类为何(COP/LDC/STC/MTC/MFC)。在处理于协处理器指令时,主处理器会针对Main-OP字段和Sub-OP字段去进行译码,以确认是否为协处理器指令。其余的协处理器编码(CP#)、协处理器功能编码(COP-Code)和协处理器寄存器(Coprocessor Register)字段的义意皆可由协处理器或协处理器系统(数个协处理器)来处理。也就根据此原理,本发明使用可重新调整的协处理器指令字段(Rearranged Coprocessor InstructionField)来发挥最大的系统层次的设计可能性,以让一个微处理器适用于更多的应用上。
图7为另一个使用本发明的技术的实施例,当一嵌入式系统所需的协处理器的数目不高于两个时,将协处理器编码(CP#)的最低有效位元(LSB)当成协处理器运算编码的一个位来使用。这个部分的硬件设计变更,只需在设计该协处理器的指令译码器时,将协处理器编码(CP#)的最低有效位元(LSB)加入协处理器的指令译码电路即可。
由上述说明可知,本发明的技术将协处理器寄存器(CoprocessorRegister)、协处理器功能编码(COP-Code)及协处理器编码(CP#)三个字段视为一个可重新调整的协处理器指令字段(Rearranged CoprocessorInstruction Field),如此在设计开发协处理器时,协处理器功能编码(COP-Code)可以作最适当的延伸调整,同时,于使用本发明技术的嵌入式系统中,其协处理器的数目亦可弹性调整,而可加速硬件接口及软件程序的开发。
上述实施例仅为了方便说明而举例而已,本发明所主张的权利范围自应以申请专利范围所述为准,而非仅限于上述实施例。
Claims (10)
1.一种可动态配置协处理器数目的系统,使用一协处理器指令以作为主处理器与至少一协处理器之间的指令,其特征在于,该系统包括:
复数个协处理器,其协助一主处理器进行特定的运算;以及
该主处理器,其执行复数个指令以进行数据运算,并使用协处理器指令与该复数个协处理器进行沟通及数据传收;
其中,该协处理器指令包含一可重新调整的协处理器指令字段及一个主指令编码字段,该可重新调整的协处理器指令字段可为包含协处理器编码、协处理器功能编码和协处理器寄存器的字段,或包含协处理器编码和协处理器寄存器的字段。
2.如权利要求1所述的可动态配置协处理器数目的系统,其中,该复数个协处理器当使用相同的可重新调整的协处理器指令字段编码时,在该系统进行整合时,使用静态的方式来决定,以使同一时间点上,该系统的可重新调整的协处理器指令字段编码是唯一的。
3.如权利要求2所述的可动态配置协处理器数目的系统,其中,该主处理器传送一协处理器指令至该复数个协处理器时,有一对应的协处理器会产生一确认信号,以响应该协处理器指令。
4.如权利要求3所述的可动态配置协处理器数目的系统,其中,该可重新调整的协处理器指令字段由对应的协处理器执行相关字段的译码。
5.如权利要求3所述的可动态配置协处理器数目的系统,其中,该主处理器传送一协处理器指令至该复数个协同处理器时,若无协处理器产生一确认信号,该主处理器进入一个未定指令例外中。
6.如权利要求1所述的可动态配置协处理器数目的系统,其中,该复数个协处理器使用相同的可重新调整的协处理器指令字段编码时,在该系统进行动态运作时,使用动态通过装置致能的方式来决定,以使同一时间点上,使该系统的可重新调整的协处理器指令字段编码是唯一的。
7.如权利要求1所述的可动态配置协处理器数目的系统,其中,该协处理器编码字段的位元数最少是1。
8.如权利要求1所述的可动态配置协处理器数目的系统,其中,任一个协处理器的协处理器功能编码字段的位元数最少是1。
9.如权利要求1所述的可动态配置协处理器数目的系统,其中,任一个协处理器的协处理器寄存器字段的位元数最少是1。
10.如权利要求1所述的可动态配置协处理器数目的系统,其中,在任何一个时间点上,该可重新调整的协处理器指令字段是唯一的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410061930 CN1716181A (zh) | 2004-06-29 | 2004-06-29 | 可动态配置协处理器数目的系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410061930 CN1716181A (zh) | 2004-06-29 | 2004-06-29 | 可动态配置协处理器数目的系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1716181A true CN1716181A (zh) | 2006-01-04 |
Family
ID=35822053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200410061930 Pending CN1716181A (zh) | 2004-06-29 | 2004-06-29 | 可动态配置协处理器数目的系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1716181A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268281A (zh) * | 2017-01-04 | 2018-07-10 | 中科创达软件股份有限公司 | 处理器协同方法及电路 |
CN113204518A (zh) * | 2020-01-31 | 2021-08-03 | 慧与发展有限责任合伙企业 | 用于配置子系统的主处理器和从处理器 |
-
2004
- 2004-06-29 CN CN 200410061930 patent/CN1716181A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268281A (zh) * | 2017-01-04 | 2018-07-10 | 中科创达软件股份有限公司 | 处理器协同方法及电路 |
CN108268281B (zh) * | 2017-01-04 | 2021-12-07 | 中科创达软件股份有限公司 | 处理器协同方法及电路 |
CN113204518A (zh) * | 2020-01-31 | 2021-08-03 | 慧与发展有限责任合伙企业 | 用于配置子系统的主处理器和从处理器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230342112A1 (en) | Decimal floating-point round-for-reround instruction | |
CN1126034C (zh) | 通过指令集结构转换的指令集模拟 | |
KR101854520B1 (ko) | 타이트하게 커플링된 이종 컴퓨팅을 위한 하드웨어 프로세서스들 및 방법들 | |
US6480868B2 (en) | Conversion from packed floating point data to packed 8-bit integer data in different architectural registers | |
US6502115B2 (en) | Conversion between packed floating point data and packed 32-bit integer data in different architectural registers | |
RU2263947C2 (ru) | Целочисленное умножение высокого порядка с округлением и сдвигом в архитектуре с одним потоком команд и множеством потоков данных | |
KR101764187B1 (ko) | 가속기들의 낮은-레이턴시 인보크를 위한 장치 및 방법 | |
US6292815B1 (en) | Data conversion between floating point packed format and integer scalar format | |
KR101636836B1 (ko) | 명령어들의 고속 실패 핸들링을 위한 장치 및 방법 | |
RU2275677C2 (ru) | Способ, устройство и команда для выполнения знаковой операции умножения | |
WO1999056245A2 (en) | Color conversion from floating point format to integer format | |
CN104813294B (zh) | 用于任务可切换的同步硬件加速器的装置和方法 | |
TWI539373B (zh) | 用以提供向量子位元解壓縮功能之方法、機器可讀取媒體、處理器及 處理系統 | |
US20040133617A1 (en) | Method and apparatus for computing matrix transformations | |
CN1613055A (zh) | 基于功率估算的指令调度 | |
CN1279783A (zh) | 利用规格字段指令编码的处理器 | |
CN1332407A (zh) | 用以执行多重指令组的数据处理装置 | |
EP1267258A2 (en) | Setting up predicates in a processor with multiple data paths | |
US7574583B2 (en) | Processing apparatus including dedicated issue slot for loading immediate value, and processing method therefor | |
CN112148251A (zh) | 跳过无意义的矩阵运算的系统和方法 | |
CN1806225A (zh) | 在具有多指令集的数据处理设备内的指令编码 | |
CN1320450C (zh) | 提供可变宽度的至少六路加法指令的方法及相应装置 | |
CN110909882A (zh) | 用于执行水平铺块操作的系统和方法 | |
CN102141903B (zh) | 用于16/32位混合指令的对称编码装置与译码装置 | |
CN1731346A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |