CN102150139A - 数据处理装置及半导体集成电路装置 - Google Patents

数据处理装置及半导体集成电路装置 Download PDF

Info

Publication number
CN102150139A
CN102150139A CN2009801356167A CN200980135616A CN102150139A CN 102150139 A CN102150139 A CN 102150139A CN 2009801356167 A CN2009801356167 A CN 2009801356167A CN 200980135616 A CN200980135616 A CN 200980135616A CN 102150139 A CN102150139 A CN 102150139A
Authority
CN
China
Prior art keywords
data
bus
address
storer
register
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
Application number
CN2009801356167A
Other languages
English (en)
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.)
Renesas Technology Corp
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to CN201510321721.7A priority Critical patent/CN105893270A/zh
Publication of CN102150139A publication Critical patent/CN102150139A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Microcomputers (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)

Abstract

本发明提供一种数据处理装置,其在双端方式中,能够不拘泥于字节序的种类而共同地使用程序,并且能够使向量表共同化。指令被固定为小端,在指令执行时使用的数据的字节序是可变的。向量表的各向量地址的尺寸是32位,数据访问时的位数最大是32位。CPU进行指令提取,在提取的指令的执行前,例如对存储器进行32位数据访问。这时,CPU不依赖于数据的字节序的种类,以在数据寄存器的字节单位的各地址中储存的数据的地址和对齐,与以指令的小端决定的数据的地址和对齐成为相同的方式,控制对齐器。

Description

数据处理装置及半导体集成电路装置
技术领域
本发明涉及具有处理器的数据处理装置。
背景技术
在具有CPU(中央处理装置)或DSP(数字信号处理器)等的处理器的数据处理装置、例如所谓被称为微型计算机(也称为微处理器、微控制器、microcomputer。)的半导体集成电路装置中,在二进制信息的数据的排列中,有被称为小端(Little Endian)的数据的排列,和被称为大端(Big Endian)的数据的排列。
作为在微型计算机中处理的二进制信息,有作为控制微型计算机的工作的指令而被处理的二进制信息,和作为通过这样的指令的执行等而被处理的数据的二进制信息,通常是在某个特定的微型计算机中,指令和数据一起采用小端或大端的任一方,进行数据处理。
另一方面,如专利文献1中记载的那样,记载有针对微型计算机的指令和数据的双方的字节序(endian)能够对应小端/大端双方的字节序的微型计算机,此外如在专利文献2中记载的那样,记载有针对在微型计算机中处理的数据能够变更小端/大端的微型计算机。
在专利文献2中记载的微型计算机中,记载了其构成为对应于储存的数据是小端还是大端,使字节单位的数据的排列变更,即使是任一种字节序都能够处理。
此外,在微型计算机中,要求削减为了储存指令、数据所需要的存储器容量,以适合的功耗提高指令的执行/数据的处理效率。
现有技术文献
专利文献
专利文献1:日本特开2000-820009号公报;
专利文献2:日本特开2005-174296号公报。
发明内容
发明要解决的问题
现在,在具有CPU(在区别作为功能的记载和作为在半导体上形成的物理区域的记载的情况下,将前者记载为CPU,后者记载为CPU核心,在不需要区别的情况下记载为CPU。)或者DSP等的处理器的数据处理装置(以下,仅称为微型计算机。)的开发中,与CPU自身的功能一起,在半导体基板上构成CPU核心和各种外围功能块(称为外围功能IP或者外围功能IP核心。),通过在CPU的控制下使各种外围功能块工作,作为整体进行与1个目的对应的处理。在这样的情况下,从被称为IP核心供应商(core vendors)的以特定的外围功能块的设计开发为专业的企业购入需要的外围功能块,或使用本公司过去设计的或在其它制品中设计的外围功能块,在1个半导体基板上构成,由此开始进行作为目的的微型计算机的设计开发。
在这样的微型计算机的设计开发体制中,有可能产生购入或者本公司设计的外围功能块的数据的字节序与CPU自身的字节序相异,或者在应该协同工作的外围功能块彼此之间的字节序中产生相异的情况。
在现有技术中在产生这样的字节序的相异的情况下,选择与CPU的字节序一致的外围功能块,或者以与CPU的字节序一致的方式进行外围功能块的再设计。
本发明者们鉴于这样的微型计算机的开发体制,认识到特别是在专利文献2记载的那样的字节序的变换中会损害作为CPU和微型计算机整体的处理性能。
本申请发明的一个目的是提供一种进行适宜的字节序变换的微型计算机。
本发明的另一个目的在于提供一种不依赖于字节序的种类,CPU能够使用共同的程序和共同的向量地址的双端(bi-endian)方式的数据处理装置。
用于解决课题的方案
CPU处理的数据能够选择小端或者大端的任一方。在CPU和存储器之间转送数据时,在字节序是任一种的情况下,CPU的向量地址(vector address)的尺寸的数据转送的排列一致。
通过固定指令码的字节序,能够使用同一程序,并且数据的字节序被设为可变,在向量表的各向量地址是N位的情况下,在访问被对齐为N位的N位尺寸的数据时,以在数据的字节序是大端/小端的任一个的情况下也不依赖于字节序,能够以同一地址/同一对齐进行访问的方式控制。另一方面,设置如下机构,在CPU对存储器进行与N位不同的单位的数据的访问时,以与CPU内的数据寄存器的字节单位的各地址中储存的数据的地址和对齐适合的方式,变更从存储器取得的数据的地址和对齐。
发明的效果
在向量尺寸的数据转送中,不依赖于数据的字节序,能够以相同的数据顺序进行数据转送,由此能够实现向量地址的共同化。
在采用将指令的字节序固定化了的双端方式的数据处理装置中,能够共同地使用程序,并且能够使向量表共同化。
以下,基于附图,对本发明的各种各样的具体方案和其效果/优点进行详细叙述。
附图说明
图1是表示实施方式1的微型计算机的一部分的结构的框图。
图2是示意地表示在存储器区域中储存的向量表的结构的图。
图3是示意地表示在双端方式中,CPU进行数据的读工作或者写工作时的信号布线关系的框图。
图4是示意地表示32位数据访问的情况下的、CPU内的寄存器的各地址与存储器内的存储区域的各地址的连接关系的框图。
图5是表示读出在存储器区域中储存的数据并储存在寄存器时的存储器和寄存器中的字节顺序的图。
图6是示意地表示实施方式2的CPU和CPU外围I/O装置之间的连接结构的框图。
图7是示意地表示存储器的结构的图。
图8是表示微型计算机的概略结构的图。
图9是表示CPU的概略结构的图。
图10是表示CPU和存储器之间的概略连接关系的图。
图11是表示CPU分派的存储器的地址空间的图。
图12是表示存储器与寄存器之间的数据转送时的访问关系的图。
图13是表示对齐器的一例的图。
图14是表示中断向量地址单位的数据转送时的对齐器的连接状况的一例的图。
图15是表示具有字节序不同的外围功能块的微型计算机的概略结构的图。
图16是表示对齐器的一例的图。
图17是概略地表示在微型计算机执行的程序的开发工具的流程的图。
图18是表示针对微型计算机的处理性能的评价项目例的图。
图19是表示指令的流水线处理的概略的图。
图20是表示哈佛结构的总线结构的概略的图。
图21是表示哈佛结构的流水线处理的概略的图。
图22是表示使用积和运算器的运算例的图。
图23是表示使用浮点运算器的运算例的图。
图24是表示使用积和运算器与浮点运算器的其它的运算例的图。
图25是表示在程序中出现的指令的出现频度的图。
图26是表示出现频度高的指令中,减小指令尺寸的指令的一例的图。
图27是表示带索引的寄存器间接寻址的地址运算的图。
图28是表示带算后增量/算前减量功能的寄存器间接寻址的地址运算的图。
图29是表示在3运算数指定的运算的图。
图30是表示微型计算机的寄存器结构的一例的图。
图31是表示针对中断处理的高速化的一例的图。
图32是表示在高速中断处理中的寄存器的使用例的图。
图33是例示地表示到高速中断处理的中断处理执行开始为止的时间的图。
图34是表示存储器保护功能的概略的图。
图35是表示字节序变换指令的一例的图。
图36是表示时钟门控设计的概略的图。
图37是表示关键总线的时序违规(timing violation)解决设计的概略的图。
图38是表示与电源域分割相关的概略的图。
图39是表示在微型计算机使用Flash存储器的情况下的处理性能的概略的图。
具体实施方式
(实施方式1)
图1是表示本实施方式的微型计算机的一部分的结构的框图。再有,在图1中,省略后述的对齐器(aligner)11的记载。
在图1中,存储器4是能够读/写的存储介质,例如是由SRAM那样的易失性存储器或闪速存储器(EEPROOM的一例)那样的非易失性存储器构成,与CPU1搭载在同一半导体芯片上。或者,存储器4搭载在与CPU1不同的其它半导体芯片上也可。或者,存储器4在其实用状态中,例如像USB存储器那样,存在于本微型计算机的外部,并且经由USB端子那样的连接端子,与后述的本微型计算机的系统总线电连接也可。
存储器4具有:(1)储存指令码(以下,仅称为“指令”。)的储存区域4R1;(2)对在程序的指令执行时利用的数据进行存储的储存区域4R2;(3)储存除此以外的数据等的信号的储存区域4R3。
在本实施方式中,作为其一个特征点,指令的字节序总是固定为小端或大端的一方。因此,仅在CPU1提取指令时能够使用的指令总线5的字节序也总是固定为小端或大端的一方。再有,在本例中,假设指令的字节序总是固定为小端。
相对于此,按照在储存在储存区域4R2的在指令执行时使用的数据的字节序,在CPU执行读工作或写工作时使用的数据总线3的字节序是可变的,能够设定为小端或大端的任一种。在本实施方式中,地址总线2、数据总线3和指令总线5的能够转送的信号的位量均是32位。因此,在转送作为多字节的二进制数值的数据的双端方式中,数据总线3由各自转送8位(1字节)的数据的4组信号线构成(相当于后述的图3的信号线30~33。)。再有,地址总线2、数据总线3、以及指令总线5不仅是物理地作为不同总线而构成,即使物理地作为1个总线构成且在时间上作为不同的总线发挥功能(所谓分离事务总线等,split transaction bus),也应该理解为表示作为该总线发挥功能的时间。
图2是示意地表示在存储器4的区域4R3中储存的向量表(vector table)6的结构的图。向量表6是是将多个各自具有N位尺寸的向量地址7汇总配置的区域。即,各向量地址7是如下地址,其对应于本微型计算机的起动时的复位信号的输入、以及例如在排除错误处理的程序执行那样的要求特定的共同使用的中断程序的处理的中断信号的输入(将两者称为“中断要因”。),赋予与各中断要因对应地预先决定的、区域4R1内的相应的中断处理程序的储存位置。首先,在起动时,当从外部输入复位信号时,N位的复位向量地址8经由数据总线3被读出,复位向量地址8向CPU1输出。此外,当在CPU工作时对CPU1输入中断信号时,与输入的中断信号对应的向量地址7经由地址总线3被读出,向CPU1输出。在本实施方式的一个例子中,包含复位向量地址8的各向量地址7以位单位的尺寸N被设定为32(N=32)。再有,根据在该复位时由CPU1赋予的字节序信号的电平,数据总线3的字节序被切换。即,在加电复位(power-on reset)时将专用的模式端子的状态和兼作为通用I/O端口(外部端子)的模式端子的状态导入微型计算机,例如锁存到寄存器,CPU1在访问向量地址之前能够确定数据是小端还是大端的哪一个。
在这里,向量表6也可以储存在与储存指令和数据的存储器(第1存储器)4不同的其它能够读/写的ROM(第2存储器)的存储区域内。在本实施方式的一个例子中,也能够定义为在存储器4的存储区域内储存指令和数据的区域4R1、4R2相当于“第1存储器”,储存向量表6的区域4R3相当于“第2存储器”。
再有,在以RAM(第1存储器)构成图1记载的存储器4时,在RAM之外,作为在本微型计算机内的半导体芯片上搭载的第2存储器,或者作为外部的第2存储器(USB存储器等),设置储存向量表6的能够读/写的ROM。
图7是表示存储器的概略结构的图。多个存储器单元配置为阵列状,各个存储器单元与对应的字线和位线连接。通常,在存储器中基于从CPU等供给的访问地址,X解码器使规定的字线活性化,Y解码器经由位线读出在与该字线连接的存储器单元中储存的数据。例如,在作为访问地址供给地址0的情况下,如果是第0字线被活性化的存储器的话,应该从第0字线的第0位线访问的字节数的数据被供给到CPU。即,在作为访问地址供给X的情况下,第Y字线(Y=X'/l,X'是X×8的位表现,l是每字线的存储器单元数)被活性化,从第Z位线(Z=X' mod l,mod是剩余运算)读出数据。
图3是示意地表示在双端方式中,CPU1进行数据的读工作或者写工作时的信号布线关系的框图。在CPU1内配置的寄存器(是数据寄存器,主要使用通用寄存器。)9,具有是字节单位、并以4个地址0、1、2、3赋予的存储区域90、91、92、93。另一方面,存储器4的存储区域4R2的存储器单元阵列是将储存区域10在行方向和列方向对齐而成,该储存区域10将是字节单位并分别以地址0、1、2、3赋予的4个存储区域10A、10B、10C、10C作为一组。此外,对齐器11由开关组(未图示)构成,该开关组由对应于从CPU1输出的控制信号CNT1切换其接通/断开工作的各开关构成。而且,对齐器11发挥如下功能,即将通过与储存区域10的各地址10A~10D对应的位线连接的各信号线(数据总线3的各线)30~33、和连接于寄存器9的各地址90~93的信号线,对应于数据或者数据总线3的字节序的种类进行连结。图4是示意地表示32位数据访问的情况下的、CPU1内的寄存器的各地址与存储器内的储存区域的各地址的连接关系的框图。当将寄存器9的0地址90侧设为LSB,将3地址93侧设为MSB,将存储器4的0地址10A侧设为LSB,将3地址10D侧设为MSB时,对齐器11表示数据是小端的情况下的连接关系。
在这里,CPU1在存储器4的储存区域10(访问地址X)中储存32位的数据时,预先如接下来那样以在各地址10A~10D中储存32位数据的方式,规定存储器4的区域4R2的地址。即,如图5所示那样,(1)在数据以小端存储时,以将在寄存器中储存的数据的LSB侧设为+0的字节顺序,将MSB侧设为+3的字节顺序的方式,决定数据的字节顺序。此外,在存储器的存储目的地地址中也同样地决定+0~+3的字节顺序,以在寄存器中储存的数据的字节顺序和对存储器的储存目的地地址决定的字节顺序一致的方式储存数据。另一方面,(2)在数据以大端存储时,以将在寄存器中储存的数据的MSB侧设为+0的字节顺序,将LSB侧设为+3的字节顺序(byte order)的方式,决定数据的字节顺序,在存储器的储存目的地地址中也决定字节顺序,在存储器中储存数据。对于存储器的储存目的地地址决定的+0~+3的各个字节顺序与各地址10A~10D对应。
现在,假设在起动时从外部输入复位信号,CPU1通过操作数访问(operand access),取得图2所示的32位的复位向量地址8。该32位的复位向量地址8赋予在存储器4的区域4R1中储存的指令的地址。此外,在中断信号被输入CPU1时,CPU1自动地进行操作数访问,取得32位的向量地址7。在此基础上,CPU1基于复位向量地址8或与中断要因对应的向量地址7,进行指令的提取工作,对提取的指令进行解码,将其工作转向指令的执行。在以下记载在这时从存储器取得与复位向量地址8和向量地址7相同的数据尺寸的32位数据的情况,和从存储器取得与向量地址不同的数据尺寸的16位数据的情况。
图5表示在数据的转送时,以什么方式进行数据对齐的变更。使地址0的箭头表示的处所与存储器的4字节边界(第32n位线)对应,在32位量(到第32(n+1)-1位线)的存储器单元中储存32位的数据。相对于这样的数据的储存状态,对齐器对应于该数据的字节序分派字节顺序,对寄存器转送。由于在各个字节序中以使在存储器中储存的字节顺序和在寄存器中储存时的字节顺序一致的方式进行储存,因此在4字节转送时与字节序无关地,在寄存器中储存的数据顺序一致。
此外,在进行16位数据转送的情况下,数据对齐的变更以如下方式进行。对齐器对从存储器的4字节边界起32位量的数据与该数据的字节序对应地分派字节顺序。将相当于各个字节序的+0/+1的字节顺序的数据从寄存器的LSB起依次存储。如图示那样,在小端的情况下对齐器分派的字节顺序的+0相当于寄存器的LSB,因此在存储器中储存的2字节的数据和在寄存器中储存的2字节的数据一致。另一方面,在大端的情况下,对齐器分派的字节顺序的+0相当于寄存器的MSB,因此在4字节转送时在寄存器的MSB侧储存的2字节的数据被储存在寄存器的LSB侧。再有,在寄存器的MSB侧储存2字节的“**”表示“0”或“1”或数据的代码位扩充储存的情况。
以上的记述在CPU1进行8位数据访问的情况下也是妥当的。
再有,在上述的一例的工作记述中,以数据的读工作为中心进行记载,但上述的本实施方式的特征点在数据的写工作中,也能够通过使在寄存器中储存的数据的字节顺序和在存储器中储存时由对齐器分派的字节顺序同样地对应来应用。
如上所述,在作为数据处理装置的结构采用本实施方式的结构的情况下,在向量地址及与向量地址相同尺寸的数据的转送中,能够不依赖于数据的字节序的种类,在同一地址和同一数据对齐(alignment)中,将数据对存储器进行读/写,在这时能够执行共同的程序,并且能够使向量表共同化。
(实施方式2)
本实施方式的特征点在于,在实施方式1的双端方式的微型计算机中,将CPU外围的各I/O装置和CPU间的数据总线分离为小端专用的数据总线和大端专用的数据总线。
图6是示意地表示本实施方式的特征点的框图。如图6所示,在进行CPU1、和CPU1的外围I/O装置之间的数据的转送的数据总线中,设置有大端专用的数据总线14、和小端专用的数据总线17。而且,各大端专用的外围I/O装置15、16经由各个信号线与大端用数据总线14连接,另一方面,各小端专用的外围I/O装置18、19经由各个信号线,与小端用数据总线17连接。作为各外围I/O装置,例如有中断控制电路(INTC)或者直接存储器访问控制器(DMAC,direct memory access controller)或者串行通信接口(SCI,serial communication interface)等。
CPU1将在CPU1、CPU1的外围I/O装置15~19之间进行相互转送的数据储存在I/O寄存器12。储存在该I/O寄存器12中的数据的字节序是小端和大端的任一方。对齐器13在CPU1输出的控制信号CNT2的控制下,对应于在I/O寄存器12中储存的数据的字节序的种类,以使I/O寄存器12内的该数据的字节顺序,与分派到大端用数据总线14和小端用数据总线17内的相应数据总线的字节顺序一致的方式连接。根据外围I/O装置内的寄存器和存储器等位于哪个地址范围,得知是小端还是大端。即,通过解码CPU1访问的地址,决定控制信号CNT2的状态。
在采用以上的结构时,在外围I/O装置和CPU之间转送的数据的字节序被固定化,在向外围I/O装置的访问处理中,不管字节序的种类是怎样的,能够使用共同的程序。即,通过对齐器13使数据的字节顺序对于各个外围I/O装置变得适合,因此即使在使用大端用外围I/O装置和小端用外围I/O装置的双方进行数据的处理的情况下,也能够不需要在CPU执行的程序中进行数据的字节序变换等的考虑外围I/O装置的数据的字节序的处理。进而,在1个半导体基板上具有多个数据处理模块(被称为所谓功能IP,相当于图6的外围I/O装置)的数据处理装置中,构成为对应于数据处理模块自身的数据的字节序分离总线,经由对齐器与CPU连接,由此能够减轻在数据处理装置的结构中以数据的字节序一致的方式选择数据处理模块或在数据处理装置的CPU执行的程序中按每个数据处理模块对数据的字节序进行变换等的、构成数据处理装置时的对硬件/软件的负担。
(实施方式3)
图8是表示微型计算机MCU的一例的概略的框图。
中央处理装置(以下,称为CPU。)1通过提取在非易失性存储器ROM、易失性存储器RAM等中储存的指令并执行,进行作为微型计算机MCU整体的处理控制。直接存储器访问控制器DMAC进行外部存储器EMEM等和存储器4(由非易失性存储器ROM、易失性存储器RAM等构成。)之间,或存储器4和外围电路组(IP1、IP2)之间的数据转送控制。总线控制器BSC在CPU1等其它的功能块经由总线进行数据转送等时,进行总线权的赋予等的控制。中断控制器INTC受理在微型计算机MCU内部或外部产生的中断,进行对CPU1通知等的控制。外围电路组(IP1、IP2)是与在微型计算机MCU的外部连接的其它的半导体集成电路装置进行通信的通信IF(Inter Face)系统(串行IO(Input/Output),并行IO等)、专用数据处理系统(图像处理块、密码处理块等)等。外部总线接口BIF经由与微型计算机MCU的外部连接的总线与外部存储器EMEM等连接。
图9是表示CPU1内的概略的框图,图10是表示CPU1的存储器访问关系的图,图11是表示在CPU1分派的存储器4的地址空间的图。在图11中,地址的右侧的“H”表示以16进制记述地址。再有,在图11中,仅表述有各区域的起始地址。
图8的CPU1与其它的功能块连接的总线,由图10所示的32位长的地址总线2、32位长的数据总线3、32位长的指令总线5构成。作为其他的总线结构,是地址和数据和指令在总线信号线上,以时分割进行信息的交接的分离事务总线的结构也可。此外,在数据和指令不被并行地访问的结构的情况下,数据总线3和指令总线5不被分离,而以同一总线构成也可。进而,数据总线3和指令总线5是64位长也可。
在CPU1进行指令提取的情况下,将在32位长的程序计数器PC中储存的要提取的指令的地址输出到地址总线2,经由地址总线2接收了该地址的存储器4将与该地址对应的二进制信息对指令总线输出。CPU1将从指令总线5接收的二进制信息作为要执行的指令储存在指令寄存器IR中,在指令解码器iDEC对指令进行解码,将与解码了的结果对应的控制信号输出到算术逻辑单元ALU、乘法器MLT、除法器DIV、移位运算器SHFT、浮点运算器等的运算器,在运算器对在寄存器组REG(通用寄存器、专用寄存器)、存储器4等中储存的数据进行相应的运算。
此外,在CPU1从中断控制器INTC接收到中断通知的情况下,CPU1为了进行与接收到的中断通知对应的中断处理,将存储器4的中断向量表区域(图11的地址FFFFFD00H~FFFFFDFFH)的地址中与接收到的中断通知对应的地址向地址总线2输出,存储器4将与该地址对应的二进制信息对数据总线3输出。CPU1将从地址总线3接收到的二进制信息作为储存有中断处理例程的地址(称为向量地址。)设定到程序计数器PC,为了执行中断处理例程的指令进行转移。在这里,向量地址是32位(4字节)长。再有,假设用于来自中断控制器INTC的中断通知以外的例外处理(例如,特权指令例外处理、未定义指令例外处理等)的向量地址也储存在中断向量表区域中。
再有,复位向量区域(图11的地址FFFFFE00H)是储存如下地址的区域,该地址(例如,引导指令区域的起始地址0000H)是储存有在微型计算机MCU被接通电源或从外部被输入复位信号的情况下,在复位期间结束后立刻执行的程序的地址。虽然中断处理和复位处理有起因是中断还是复位的差异,但在转移的地址的取得中是大致相同的。
在引导(boot)指令区域、第1程序区域、第2程序区域以及中断处理例程区域等的程序区域中储存的指令的字节序,固定为小端或大端的任一种。此外,复位向量区域和中断向量表等的向量区域的数据的字节序也固定为小端或大端的任一种。这些字节序的固定在微型计算机的制造时固定也可,最迟在加电复位后访问向量区域之前被固定即可。在后者的情况下,在加电复位时将专用的模式端子的状态、兼作为通用I/O端口(外部端子)的模式端子的状态导入微型计算机,例如锁存到寄存器,CPU1在访问向量地址之前能够确定数据是小端还是大端的哪一个即可。
第1程序储存在存储器4的地址1000H~1FFFH的范围的区域中。第2程序储存在存储器4的地址3000H~3FFFH的范围的区域中。第1程序和第2程序分别具有第1数据区域(地址2000H~2FFFH)和第2数据区域(地址4000H~4FFFH)。第1程序将第1数据区域的数据的字节序作为小端进行数据处理,第2程序将第2数据区域的数据的字节序作为大端进行数据处理。例如,相当于第1程序是对以小端进行数据处理的外围电路生成的数据进行处理的程序,第2程序是对以大端进行数据处理的外围电路生成的数据进行处理的程序的情况。
根据CPU1的地址空间的地址范围,预先决定处理小端或大端的哪一方的数据。再有,能够根据地址范围,通过CPU在寄存器设定处理小端或大端的哪一方的数据也可。此外,能够在复位解除后,通过将在内置的非易失性存储器中预先储存的数据自动地转送到寄存器,设定处理小端或大端的哪一方的数据也可。
在CPU1执行第1程序的期间中产生来自中断控制器INTC的中断通知的情况下,向中断向量表区域(地址FFFFFD00H~FFFFFDFFH)的访问以预先固定的字节序来进行访问。
另一方面,在CPU1执行第2程序的期间中产生中断通知的情况下,向中断向量表区域的访问以预先固定的字节序来进行访问。
图12是表示在存储器4和CPU1的寄存器9之间转送数据时的访问关系的图,图13是表示对齐器11的一个例子的图。
在从存储器4向寄存器9(寄存器组REG中的一个寄存器)进行数据转送的情况下,在要转送的数据储存在存储器4的10A至10D所示的区域中的情况下,相对的地址位移0地址的数据(10A)向数据总线3中的以号码30表示的8bit的部分总线输出。以下同样地,地址位移1地址~3地址的数据(10B~10D)向以号码31、32、33表示的8bit的部分总线输出。向以号码30~33表示的各个部分总线输出的数据储存在寄存器的相对的地址位移0地址~3地址的哪个8bit的部分区域中,是对应于控制信号CNT1的状态通过对齐器11来决定的。控制信号CNT1是根据小端或大端、向存储器4的访问尺寸(access size)、访问字节地址等的信息而生成的信号。
最初,针对将从存储器4向寄存器的数据转送以复位向量地址、中断向量地址等的向量地址(以下,称为中断向量地址。)的尺寸的4字节访问的情况进行说明。在该情况下,对齐器11以成为图14所示的连接状态的方式被设定。图14是示意地表示4字节的访问的情况下的、CPU1内的寄存器的各地址与存储器4内的储存区域的各地址的连接关系的框图。当将寄存器9的0地址90侧设为LSB,将3地址93侧设为MSB,将存储器4的0地址10A侧设为LSB,将3地址10D侧设为MSB时,对齐器11表示存储器4内的数据和CPU1内的数据的字节序是相同的情况下的连接关系。即,表示在CPU1内的数据的字节序是小端的情况下,存储器4内的数据的字节序是小端。以下,作为一个例子,针对CPU1内的数据的字节序是小端的情况进行记述。
在图13中,在对第1数据区域的数据(小端的数据)进行四字节访问的情况下,与部分总线[0:7](数据总线30)、[8:15](数据总线31)、[16:23](数据总线32)、[24:31](数据总线33)连接的4字节数据被输出,以使输出到部分总线[24:31]的数据成为寄存器的MSB侧的方式储存在寄存器9的地址位移0地址(90)、1地址(91)、2地址(92)、3地址(93)。另一方面,在访问第2数据区域的数据(大端的数据)的情况下,以使输出到部分总线[24:31]的数据成为MSB侧的方式,将与部分总线[0:7]、[8:15]、[16:23]、[24:31]连接的各个数据储存在寄存器9的地址位移0地址、1地址、2地址、3地址。即,即使在访问第1数据区域或第2数据区域的某一方的数据时,在以中断向量地址尺寸的访问中,以在CPU1内的寄存器9中储存的顺序一致的方式,设定对齐器11的选择器1~4。选择器1~4分别以4个双方向性开关构成,双方向性开关以CMOS传输门(transfer gate)构成。直接用控制信号CNT1,或将其解码来对双方向性开关进行控制。
同样地,即使在执行第1程序或第2程序的某一方中产生中断通知,在向中断向量地址的访问中,输出与储存有中断向量地址的地址的部分总线[0:7]、[8:15]、[16:23]、[24:31]连接的4字节的数据,以使输出到部分总线[24:31]的数据成为寄存器的MSB侧的方式,储存在寄存器的地址位移0地址、1地址、2地址、3地址。
再有,储存中断向量地址的寄存器是程序计数器(program counter)PC,通过更新在程序计数器PC中储存的地址,向中断处理例程进行转移。
这样的转移工作不仅是中断通知发生时的向中断处理例程的转移,在地址修改转移指令等的进行地址修改的指令的执行中也是同样的。
作为这样的地址修改转移指令,例如如
Figure 90923DEST_PATH_IMAGE001
那样,记述指令。在指令的记述中包含的“@”表示进行地址修改,“#”表示将接着的二进制信息作为数值信息进行识别,Rn表示指定寄存器号码。
在指令(1)中,在以adr表示的存储器4的地址中储存有转移目的地地址,在该指令的执行中,访问地址adr以与中断向量地址相同的尺寸取得转移目的地地址,转送到程序计数器PC。通过在程序计数器PC中储存的地址被更新为转移目的地地址,能够进行指令的执行转移。在指令(2)中,在寄存器中储存有在指令(1)中的地址adr,访问寄存器Rn取得地址adr。之后的工作与指令(1)相同。
接着,记述以作为中断向量地址尺寸的一半的2字节,进行从存储器4向将存储器的数据转送的情况,以及以1字节进行的情况。即使在以2字节或1字节进行来自存储器4的数据转送的情况下,在从存储器4以4字节进行数据读出之后,将作为读出对象的2字节或1字节转送到寄存器。
在指定从第1数据区域的地址2000H起2字节的数据转送的情况下,对于将地址2000H作为起始读出的4字节数据中的与部分总线[24:31]和[16:23]连接的数据,选择器3将部分总线[24:31]连接于寄存器9的寄存器内位移1地址,选择器4将部分总线[16:23]连接于寄存器内位移0地址。在该情况下,选择器1和2以不将与部分总线[0:7]、[8:15]连接的数据储存在寄存器中的方式进行控制。
此外,在指定从地址2002H起2字节的数据转送的情况下,对于将地址2000H作为起始读出的4字节数据中的与部分总线[8:15]和[0:7]连接的数据,选择器3将部分总线[24:31]连接于寄存器内位移1地址,选择器4将部分总线[16:23]连接于寄存器内位移0地址。在该情况下,选择器1和2以不将与部分总线[0:7]、[8:15]连接的数据储存在寄存器中的方式进行控制。
另一方面,在指定从第2数据区域的地址4000H起2字节的数据转送的情况下,对于将地址4000H作为起始读出的4字节数据中的与部分总线[0:7]和[8:15]连接的数据,选择器3将部分总线[0:7]连接于寄存器9的寄存器内位移1地址,选择器4将部分总线[8:15]连接于寄存器9的寄存器内位移0地址。在该情况下,选择器1和2以不将与部分总线[0:7]、[8:15]连接的数据储存在寄存器中的方式进行控制。
此外,在指定从地址4002H起2字节的数据转送的情况下,对于将地址4000H作为起始读出的4字节数据中的与部分总线[16:23]和[24:31]连接的数据,选择器3将部分总线[16:23]连接于寄存器内位移1地址,选择器4将部分总线[24:31]连接于寄存器内位移0地址。在该情况下,选择器1和2以不将与部分总线[0:7]、[8:15]连接的数据储存在寄存器中的方式进行控制。
接着,记述以作为中断向量地址尺寸的四分之一的1字节,进行从存储器4向寄存器9的数据转送的情况。
在指定从第1数据区域的地址2000H起1字节的数据转送的情况下,输出与部分总线[0:7]连接的数据,选择器4将部分总线[0:7]连接于寄存器内位移0地址。此外,在指定从地址2001H起1字节的数据转送的情况下,输出与部分总线[8:15]连接的数据,选择器4将部分总线[8:15]连接于寄存器内位移0地址。此外,在指定从地址2002H起1字节的数据转送的情况下,输出与部分总线[16:23]连接的数据,选择器4将部分总线[16:23]连接于寄存器内位移0地址。此外,在指定从地址2003H起1字节的数据转送的情况下,输出与部分总线[24:31]连接的数据,选择器4将部分总线[24:31]连接于寄存器内位移0地址。
另一方面,在指定从第2数据区域的地址4000H起1字节的数据转送的情况下,输出与部分总线[24:31]连接的数据,选择器4将部分总线[24:31]连接于寄存器内位移0地址。此外,在指定从地址4001H起1字节的数据转送的情况下,输出与部分总线[16:23]连接的数据,选择器4将部分总线[16:23]连接于寄存器内位移0地址90。此外,在指定从地址4002H起1字节的数据转送的情况下,输出与部分总线[8:15]连接的数据,选择器4将部分总线[8:15]连接于寄存器内位移0地址90。此外,在指定从地址4003H起1字节的数据转送的情况下,输出与部分总线[0:7]连接的数据,选择器4将部分总线[0:7]连接于寄存器内位移0地址。
再有,对齐器11设置在CPU1的寄存器9与数据总线3之间即可,例如设置在CPU1内也可。此外,在外部总线接口BIF内设置外部存储器EMEM用的对齐器也可。在该情况下,能够按照外部存储器EMEM等的外部器件的每个地址空间,通过CPU在寄存器设定大端和小端的切换也可。
以上,针对从存储器4向寄存器9进行各种尺寸的数据转送的情况进行了说明,但在从寄存器9向存储器4进行数据转送的情况下也是同样的。再有,在从存储器4向寄存器9进行数据转送的情况下,在数据尺寸为2字节和1字节时,不被转送的部分的数据被代码扩充(进行0扩充或1扩充也可。)。另一方面,在从寄存器9向存储器4进行数据转送的情况下,在数据尺寸为2字节和1字节时,不被转送的部分不受影响。
以上,在实施方式3中,不管存储器4的数据成为小端和大端的哪个字节序,通过在将中断向量地址的尺寸作为单位进行向存储器4的访问时以相同的数据顺序储存在寄存器中,由此与在接收中断通知的时刻执行的程序的数据的字节序无关地,能够使中断向量地址和中断处理程序等的程序共同化。
在实施方式3中,能够根据存储器的地址空间来设定大端和小端的区域,但与实施方式1同样地能够针对在微型计算机中内置的存储器4将整体设定为大端或小端的任一方也可。在该情况下,与实施方式3同样地,在加电复位时将专用的模式端子的状态、和兼作为通用I/O端口(外部端子)的模式端子的状态导入微型计算机,例如锁存(latch)到寄存器,CPU1在访问向量地址之前能够确定数据是小端还是大端的哪一个也可。
(实施方式4)
图15表示具有字节序不同的外围功能块的微型计算机的概略,其它的结构与实施方式3的微型计算机MCU(图8)相同。在图15中,记载有CPU1、总线控制器BSC、与总线控制器BSC连接的以小端进行数据处理的小端用外围功能块(小端用外围I/O装置18、19)、以及与总线控制器BSC连接的以大端进行数据处理的大端用外围功能块(大端用外围I/O装置15、16)。小端用外围功能块经由小端用外围数据总线17与总线控制器BSC内的对齐器13连接,大端用外围功能块经由大端用外围数据总线14与总线控制器BSC内的对齐器13连接。在本结构中,小端用外围I/O装置19内的转送缓冲器TBL等、大端用外围I/O装置15内的转送缓冲器TBB等、和CPU1的I/O寄存器12(寄存器组REG中的一个寄存器。与寄存器9相同也可。),与外围I/O装置内的转送缓冲器、寄存器的尺寸无关地,以LSB共同连接的方式连接于总线。小端用外围I/O装置18、19或大端用外围I/O装置15、16能够通过分派到各个转送缓冲器、寄存器的地址来判别。
小端用外围I/O装置18、19从外部或小端用外围数据总线17接收小端排列的数据,或处理数据生成小端排列的数据,向小端用外围数据总线17输出。
大端用外围I/O装置15、16从外部或大端用外围数据总线14接收大端排列的数据,或处理数据生成大端排列的数据,向大端用外围数据总线14输出。
CPU1通过执行第1程序,进行小端用外围I/O装置18、19的工作控制,控制向小端用外围I/O装置18、19的数据输入输出。例如,在向小端用外围I/O装置18、19转送数据,将处理后的数据向存储器4转送的情况下,配合转送的数据的尺寸在控制信号CNT2设定对齐器13的转送设定信息。在大端用外围I/O装置15、16的数据转送中,控制信号CNT2的设定也是同样的。
对齐器13在外围I/O装置内的转送缓冲器、寄存器的尺寸与向这些转送缓冲器、寄存器的访问尺寸相同的情况下,与字节序无关地以成为相同的数据的排列的方式构成。例如,在CPU1将在小端用外围I/O装置19的转送缓冲器TBL中储存的数据向存储器4的第2数据区域(大端)转送的情况下,将以转送缓冲器的指定地址作为初始的中断向量地址尺寸量的数据,以第2数据区域的指定的地址为初始进行储存。在该情况下,在转送缓冲器TBL中储存的数据暂时被导入至CPU1内的寄存器,之后被转送至存储器4的第2数据区域。
此外,在从小端用外围I/O装置19向大端用外围I/O装置(15、16)、第2数据区域(大端)进行数据转送的情况下,通过使小端用外围I/O装置19将数据储存在转送缓冲器时的储存在LSB侧的数据与在处理该数据CPU1的I/O寄存器12、大端用外围I/O装置16的转送缓冲器TBB、大端用外围I/O装置15的寄存器BIREG的储存在LSB侧的数据相同,在外围I/O装置内的转送缓冲器、寄存器的尺寸与向这些输缓冲器、寄存器的访问尺寸相同的情况下,能够不需要变更在对齐器13的数据的排列。
另一方面,在与外围I/O装置内的转送缓冲器、寄存器的尺寸相比向这些输缓冲器、寄存器的访问尺寸小的情况下,需要对齐器13变更数据的排列。
CPU1设定对齐器13的转送设定信息的控制信号CNT2,与上述的转送的数据的尺寸信息一起,还包含与转送的数据的处理单位相关的信息和与转送方向相关的信息。
图16表示对齐器13的结构例。选择器1A~4A和1B~4B分别被输入控制信号CNT2,决定输入输出方向和部分总线彼此的连接。在外围I/O装置内的转送缓冲器、寄存器的尺寸和向这些转送缓冲器、寄存器的访问尺寸相同的情况下,连接相同的位位置的数据总线彼此(小端用外围数据总线17和大端用外围数据总线14和CPU1/存储器4用数据总线3的部分总线[0:8])。
另一方面,在外围I/O装置内的转送缓冲器、寄存器的尺寸是2字节或4字节的情况下,在从小端用外围数据总线17向大端用外围数据总线14转送以字节单位处理的数据时,以数据的排列变为相反的方式(例如,在4字节的情况下,一方的部分总线[0:7]与另一方的部分总线[24:31],一方的部分总线[8:15]与另一方的部分总线[16:23])连接部分总线。
再有,选择器1A~4A和1B~4B以与实施方式3的选择器1~4同样的双方向性开关构成。
通过像这样构成对齐器13,对应于处理的字节序将外围功能块连接于不同的总线,在经由对齐器13连接于各个总线的外围功能块之间能够进行数据转送。
以上,在实施方式4中,不依赖于与外围功能IP之间的成为转送对象的数据的字节序和在控制外围功能IP的程序的处理对象的数据的字节序,能够以相同的数据顺序进行数据转送,由此能够实现控制外围功能IP的程序的共同化。
进而,与外围功能块的数据处理的字节序和CPU1的数据处理的字节序的异同无关地,能够使采用在微型计算机MCU中必要的外围功能块的自由度提高。
(实施方式5)
图17表示在实施方式1、2、3、4和后述的实施方式6的微型计算机中执行的程序的开发工具的流程概略。将以C语言等的高级语言记述的源程序用编译器(compiler)进行语法分析等以及最优化,输出以汇编语言记述的汇编语言程序。汇编器(assembler)根据从编译器输出的汇编语言生成机械语言,输出机械语言程序。在链接编辑器(linkage editor)将1个或多个机械语言程序结合(链接处理)起来,生成能够在微型计算机执行的程序。
编译器输出的汇编语言程序大致分为有:作为微型计算机的CPU等执行的指令码的集合部的代码部分(或代码段);和作为在高级语言程序中记述的常数、编译器输出的常数等的集合部的数据部分(或数据段)。代码部分中的指令码如上述那样,固定为小端或大端的任一方。另一方面,数据部分中的常数等能够选择小端或大端的任一方,但在高级语言程序中具有使用哪个字节序的指定指令,按照该指定指令,进行字节序解决。
如果是在高级语言或汇编语言程序中包含的常数的话,能够通过编译器或汇编器进行字节序解决,但由于转移指令的转移目的地地址等的地址参照值在链接编辑器的链接处理时决定,所以不能进行在编译器或汇编器的字节序解决。这样的地址的字节序解决通过链接编辑器来进行。
链接编辑器将1个或多个机械语言程序结合,针对在结合前的机械语言程序中作为变量名被参照的地址参照值,通过链接后的配置决定地址值,进行字节序解决并作为地址常数储存在执行程序的数据部分中。
通过上述的流程生成的可执行程序,在微型计算机的半导体基板上构成的掩模ROM或闪速存储器等中储存,构成为能够在微型计算机执行。
在与上述的实施方式3的对应中,在从数据部分向寄存器进行数据转送时,输出对应于数据转送尺寸进行对齐器11的设定的控制信号CNT1,决定在数据部分中储存的数据的排列。
此外,针对包含中断向量地址的地址参照值、地址常数,设为成为相同的数据尺寸。由此,在其它的转移指令、地址参照指令的执行中,在以中断向量地址尺寸取得地址信息时,与储存的数据部分的字节序无关地,能够适宜地取得地址信息。
在与上述的实施方式4的对应中,在外围功能块之间或外围功能块与存储器4、寄存器之间进行数据转送的情况下,输出对应于数据转送尺寸和该数据的处理单位来进行对齐器13的设定的控制信号CNT2,决定数据转送时的数据的排列。
实施方式6
以下,针对微型计算机MCU的处理性能的提高、代码效率的提高、以及功耗的提高分别进行记述。再有,代码效率的提高指的是削减为了储存指令所需要的存储器容量。
图18记述了关于微型计算机MCU的处理性能的评价项目。微型计算机MCU对应于使用的用途而被需要的处理性能存在差异,图18是对在所谓的数字家电等的进行比较高度的处理的设备中组装使用的微型计算机MCU被要求的处理性能的一个例子。
为了实现这样的处理性能,如图19所示,采用5级流水线处理。流水线处理如通常所知的那样,将在CPU1的指令执行分为多个处理阶段,以时钟的一个周期执行各处理阶段。
在存储器提取阶段(memory fetch stage),从存储器4向指令寄存器IR提取指令。在解码阶段,对提取到指令寄存器IR的指令进行解码,接着在执行阶段进行执行指令的运算器的调度(scheduling)等。此外,在解码阶段针对NOP指令等的不需要执行的指令,也进行用于使流水线结束的旁路(bypass)处理、提取在运算中使用的寄存器的内容的寄存器提取。
在执行阶段,根据在解码阶段中调度的运算器和提取的寄存器的内容进行运算处理、地址计算。在存储器访问阶段,在存在需要对指令进行存储器访问的操作数的情况下,进行存储器访问。
在回写阶段(writing back stage),将在执行阶段的运算结果储存在寄存器,进行针对该指令的流水线的结束处理。
图20表示微型计算机MCU的CPU1和存储器4之间的总线结构。如图21所示,通过进行流水线处理,能够将在CPU1的指令执行的各处理阶段,以多个指令使不同的处理阶段执行,使每1个指令的实际处理性能提高。在该情况下,具有需要存储器访问的操作数的指令的存储器访问阶段,和指令提取变为相同的定时,产生存储器访问的竞争。因此,采用将进行指令提取的指令总线5与操作数用的存储器访问总线(数据总线3)分离的哈佛结构,使存储器访问的竞争产生的机会减少。
在图20中记载的Instruction Interface相当于图9记载的指令寄存器IR和指令解码器iDEC。Data Interface是与存储器访问总线的接口,进行操作数用的存储器访问控制。
通过在CPU1采用哈佛结构和流水线处理,能够回避CPU1进行的存储器访问的竞争(指令提取和操作数提取),能够使CPU1的指令执行性能提高。
在所谓的数字家电中,较多地存在DVD(包含高记录密度规格)、数字TV等等的进行活动图像处理的设备。在活动图像处理中按每个像素反复执行的积和运算等的DSP(数字信号处理)运算。
如图22记载的那样,在DSP运算中,在每个运算中将在存储器4中储存的每个像素的数据反复向寄存器读出并进行运算,将数据向寄存器读出的处理相对于实际的运算成为开销(overhead)。因此,能够执行存储器间积和运算指令,其将在运算中使用的2个数据从存储器4直接读出进行乘法,进行与已经运算结果的加法处理。
此外,对于在寄存器中储存完成的数据也能够同样地执行进行积和运算的寄存器间积和运算指令。
在通过存储器间积和运算指令使用在存储器4中储存的许多的数据的积和运算中,能够削减从存储器4向寄存器进行数据转送的时间,运算器的处理效率提高,不需要从存储器4向寄存器进行数据转送的转送指令,因此代码效率提高。此外,通过寄存器间积和运算指令,能够高速地执行使用了在寄存器储存完成的数据的积和运算,运算器的处理效率提高。
此外,在坐标运算等中,需要反复执行浮点运算。如图23记载的那样,在浮点运算器中具有与通用寄存器不同的专用数据寄存器,使用专用数据寄存器进行运算。在这样的运算中,将在通用寄存器中储存的数据向专用寄存器转送的处理成为开销。因此,构成为浮点运算器能够直接访问在通用寄存器中储存的数据,进行运算。通过这样的结构,能够削减从通用寄存器向专用寄存器的数据转送处理,运算器的处理效率提高,不需要从通用寄存器向专用寄存器进行数据转送的转送指令,因此代码效率提高。
图24表示使用积和运算器与浮点运算器的其它的运算例。
在将外部传感器等的模拟信号通过A/D转换器进行数字变换并储存在存储器4中之后,能够使用在存储器4中储存的数字变换后的传感器信息和在存储器4中储存的滤波运算系数,进行根据存储器间积和运算指令的滤波运算,进行在数字变换后的传感器信息中包含的噪声的除去。
在对电动机供给PWM(脉冲宽度调制,pulse wave modulation)波形进行旋转控制的电动机控制中,将从电动机的各相位(U/V/W相)输出的电动机电流通过A/D转换器进行数字变换并储存在寄存器中之后,进行利用寄存器间积和运算指令的坐标变换。在浮点运算器对储存于通用寄存器的积和运算结果进行PID(比例/积分/微分)控制运算之后,通过寄存器间积和运算指令对通用寄存器的控制运算结果再次进行坐标变换,作为电动机控制信号对电动机供给PWM波形。通过这样的运算,能够反复进行使用了通用寄存器的运算,与使用专用寄存器的运算相比能够以短时间间隔进行电动机控制。
图25是分析用户的应用(application)中出现频度高的指令的图。通过针对频出指令减小指令尺寸,能够减小用户应用的执行程序尺寸,能够谋求代码效率的提高。此外,通过将出现频度高的指令作为对于用户容易使用的指令,能够导致适用性的提高。
图26是出现频度高并减小了指令尺寸的指令的一例。
在与程序中的环路(loop)处理、变量的值对应的多方向转移中,作为对应于环路条件的成立/非成立、变量的值进行转移时使用的转移指令,有在相对地址中指定转移目的地地址的BEQ(条件成立转移)、BNE(条件非成立转移)、BRA(无条件成立转移)。
在这些指令的工作中,有转移的存储器4内的地址距离比较短的,配合转移距离为8字节以内、256字节以内、65434字节以内的各情况,作为转移指令的代码尺寸,能够采用1字节、2字节、3字节的指令。由此,与转移距离对应的用户的选择自由度变高,能够谋求代码效率的提高。
在将在寄存器中储存的地址值作为基准指定相对位移值的寄存器间接寻址的转送指令、在立即值(immediate value)和寄存器之间进行运算的比较指令、加法指令中,配合作为以寄存器储存值为基准的相对位移值和立即值能够指定的值的范围,能在2字节~8字节中选择指令的代码尺寸。
或者,在能够指定寄存器储存值中的在运算中使用的数据宽度的运算指令中,配合作为该数据宽度能够指定的值的范围,在乘法指令中能够在2字节~6字节中选择代码尺寸,或者在除法指令中能够在3字节~7字节中选择代码尺寸。
此外,在子例程转移指令中,通过程序计数器存储值+寄存器存储值运算求取转移目的地地址,能够在2~4字节中选择指令的代码尺寸。
图27表示带索引的寄存器间接寻址的例子。
在带索引的寄存器间接寻址中,进行储存了基地址(base address)的寄存器和储存了偏移地址(offset address)的寄存器的加法,对求取的地址进行数据转送等。在该情况下,在有字节尺寸指定的情况下,直接进行偏移地址和基地址的加法,在有长字尺寸(long word size)指定的情况下,进行使偏移地址为4倍后的值与基地址的加法。通过采用这样的寻址指定,在字节尺寸指定中能够谋求偏移地址和基地址的加法指令的削减,在长字尺寸指定中能够谋求偏移地址的4倍化运算(2位左移位运算)指令、偏移地址和基地址的加法指令的削减,代码效率提高。
图28表示带算后增量(post increment)/算前减量(pre-decrement)功能的寄存器间接寻址的例子。
算后增量/算前减量主要在对具有规定数量的条目(entry)的表中储存的值进行运算的情况下使用。使用算后增量和算前增量的哪一个,是在从表的低位侧地址起进行运算的情况下使用算后增量,在从表的高位侧地址起进行运算的情况下使用算前增量。在从表的低位侧地址起进行运算的情况下,对在最初的表条目中储存的值进行运算之后,需要进行参照下一个表条目的值的地址的加法。通过算后增量/算前增量功能,能够以对储存在该表条目中的值进行运算的运算指令进行参照表条目的地址的加法/减法,能够谋求进行参照地址的加法/减法的指令的削减,代码效率提高。
图29表示能够指定3操作数的运算的例子。
在执行作为操作数指定2个寄存器等的加法指令的情况下,将加法值和被加法值预先储存在各个寄存器,将加法结果储存在储存有被加法值的寄存器中。在这样的运算工作中,在其它的运算中也利用被加法值的情况下,需要在其它的寄存器或者存储器4中预先储存被加法值,在每个运算中将被加法值转送到被加法值储存寄存器。
通过在寄存器等能够指定3操作数,能够指定为将运算结果储存在与被加法值储存寄存器不同的寄存器中,能够谋求在每个运算中向被加法值储存寄存器转送被加法值的指令的削减,代码效率提高。
图23表示微型计算机MCU的寄存器结构的一例。微型计算机MCU具有主要用于运算的通用寄存器,和用于微型计算机MCU的工作控制的控制寄存器。
对通用寄存器的基本的尺寸(32bit),存在以能够作为用于8bit数据、16bit数据的运算的8bit寄存器、16bit寄存器而使用的方式进行分割的情况。可是,在本实施方式的微型计算机MCU中,不进行这样的寄存器的分割,将全部的寄存器仅在成为基本的32bit进行使用。
在分割寄存器的情况下,由于需要成为运算对象的部分寄存器和不成为运算对象的部分寄存器的访问控制,所以寄存器控制电路变得复杂,招致寄存器访问的时间开销和功耗的增大。通用寄存器在指令执行中被访问的情况很多,即使是寄存器访问的时间开销和功耗的增大在每一次中仅是微小的,但在程序执行整体中时间开销和功耗变大。
通过不采用寄存器的分割,能够谋求寄存器访问的时间开销和功耗的降低。此外,由于通用寄存器的尺寸被统一,所以在以编译器从高级语言向汇编语言的编译处理中能够使用的寄存器的自由度变高,通用寄存器的使用效率提高,因此能够降低向存储器4的访问频度。在这些方面,也能够谋求指令执行中的存储器访问开销和功耗的降低。
在控制寄存器中,具有:在中断处理、子例程处理中的栈指示器(stack pointer,ISP、USP)、表示中断表的配置地址的中断表寄存器(INTB);表示执行中的指令地址的程序计数器(PC)和表示指令执行中的状态的处理机状态字(PSW);表示浮点运算器和其它的协处理器的执行状态的浮点状态字(FPSW、CPEN)。作为用于进行更高速中断处理的专用寄存器,具有:对PSW和PC进行备份的备份PSW(BPSW)和备份PC(BPC);高速中断处理中的高速中断向量地址(FINTV)。
图31、图32和图33表示中断处理的高速化的情况。
图31表示高速中断处理的时序。在通常的中断处理中,对应于来自中断控制器INTC的中断通知,使PSW和PC分别退避到栈区域,进行与中断要因对应的向量表的读出,取得中断处理例程的地址,对该中断处理例程进行转移。此外,在通知多个中断通知或在已经进行中断处理的状态下通知了其它中断通知的情况下,判定中断处理的处理优先次序,对应于优先处理的中断处理,进行中断屏蔽等的标签设定处理。在这些处理中,由于栈区域和中断向量表被分配到存储器4,在所以PSW和PC的向栈区域的退避和向量表读出需要存储器访问的时间。
在高速中断处理中,不是将PSW和PC退避到栈区域,向中断向量表进行访问,而是分别退避到作为控制寄存器而准备的备份PSW和备份BPC,向在高速中断向量地址中储存的中断处理例程转移。通过这样的处理,在高速中断处理中能够削减存储器访问,能够使向中断处理的转移高速化。
图32表示中断处理中的通用寄存器的分配。在通常的中断处理中,在向中断处理转移之前在应用中使用的通用寄存器中储存的数据在中断处理中被改写,在从中断处理恢复之后的应用的继续执行中,以不发生故障的方式,将在通用寄存器中储存的数据退避到栈区域或者将在转移到中断处理时使用的寄存器库(register bank)切换为不同的库。该向栈区域的退避产生存储器访问,此外寄存器库的切换在实际上通过将在寄存器中储存的数据向存储器4的区域退避来实现。
为了对向中断处理的转移进行高速化,将通用寄存器分别向应用用寄存器和中断用寄存器房分配,以在应用执行中使用分配为应用用的寄存器,在中断处理的执行中使用中断用寄存器的方式进行控制。通过能够在程序中对应用用寄存器和中断处理用寄存器进行分配设定,寄存器的分配的自由度提高,此外,不需要通用寄存器的退避,能够使中断处理的执行开始高速化。
如图33所示,通过PSW和PC的退避以及中断向量地址取得中的存储器访问的削减(高速中断处理)、和从应用用寄存器向中断用寄存器的通用寄存器的切换(通用寄存器分配),能够缩短在进行中断通知后到与该中断通知对应的中断处理开始前的时间,提高微型计算机MCU的程序执行效率。
图34表示存储器保护。在应用A和应用B分别被分配为应用A用存储器区域和应用B用存储器区域的情况下,在发生应用A错误地访问应用B用存储器区域并改写在应用B中使用的数据,或者从应用A错误地转移到应用B等的情况下,应用B的执行工作变得不稳定,作为微型计算机MCU整体的工作也变得不稳定。
为了防止这样的事态的发生,具有存储器保护单元,防止应用A访问应用B用的存储器区域,或从应用A向应用B转移等。由此,防止应用B的执行工作变得不稳定,能够使作为微型计算机MCU整体的工作稳定化。
图35表示字节序变换指令的一例。
作为实施方式3和实施方式4,针对数据的双端处理进行了记述,但也发生如下情况,即,将作为小端进行数据处理的存储器区域中储存的数据读出到通用寄存器进行规定的运算后,向作为大端被数据处理的存储器区域或大端用外围I/O装置进行数据的转送。在这样的情况下,通过对向对齐器11的控制信号CNT1或向对齐器13的控制信号CNT2进行设定,能够变更在对齐器11或对齐器13的数据的排列。在某种程度连续地进行数据的变换的情况下,通过对齐器11或对齐器13,变更数据的排列是有效的。
另一方面,在将数据交替地变换为小端和大端并储存在存储器区域中的情况下,需要以交替地进行字节序变换的方式对对齐器11或对齐器13进行设定。在这样的情况下,通过字节序变换指令在寄存器内变换数据的字节序,不变更对齐器11和对齐器11的设定,有时能够降低与对齐器11或对齐器13的设定变更相关的功耗。
图36、37和图38表示针对用于微型计算机MCU的低功耗化的设计方法的例子。
触发器(flip-flop)等的进行时钟同步工作的逻辑元件、配置在时钟供给路径的时钟驱动器只要被供给时钟就流过电流,因此需要对不使用的电路停止时钟的供给。因此,如图36所示,在进行微型计算机MCU的逻辑合成的时刻插入时钟门控(clock gating)电路,能够停止时钟供给。
接着,在时钟同步设计中,在以被进行时钟同步工作的触发器夹着的方式配置进行时钟非同步工作的逻辑元件的情况下,产生在触发器间发生时序违规的路径(关键路径),需要消除这样的时序违规。如图37所示,最初使用低速的高阈值电压/低漏电流的逻辑元件进行时钟同步设计,仅对关键路径使用低阈值电压/高漏电流的高速的逻辑元件,谋求消除时序违规。通过这样的时钟同步设计,构成微型计算机MCU的许多逻辑元件成为低功耗的逻辑元件,在低功耗逻辑元件中,在产生时序违规的路径中使用更高功耗更高速的逻辑元件,能够进行作为整体成为低功耗的微型计算机MCU的时钟同步设计。
此外,如图38所示,将微型计算机MCU的内部分割为多个电源域,以停止对不工作的电源域的电源供给的方式,具有多个低功耗模式。在该情况下,微型计算机MCU内部的内置调节器(regulator)对电源域分别供给电源,从内置调节器到电源域之间配置向该电源域进行电源供给或停止的开关电路。
图39是表示在作为储存程序的ROM使用Flash存储器的情况下的、Flash存储器的访问速度对微型计算机MCU的处理性能造成的影响的图。在微型计算机MCU中使用能够以30MHz进行读出工作的Flash存储器的情况下,即使令微型计算机MCU在100MHz的时钟进行工作,每个指令提取中需要多个时钟周期的等待工作,程序的实效的执行性能从100MHz大幅降低。
为了回避这样的执行性能的降低,考虑在Flash存储器和CPU1之间配置指令高速缓冲存储器。通过配置指令高速缓冲存储器,在CPU1提取在指令高速缓冲存储器中储存的指令的情况下(高速缓存命中,cache hit)能够进行1时钟周期的指令提取,但在指令没有储存在指令高速缓冲存储器中的情况下(高速缓存不命中,cache mishit)需要多个时钟周期的等待工作,此外,需要指令高速缓冲存储器所占的面积。
通过Flash存储器的存储器阵列结构、地址解码器等的外围逻辑电路的高速化,Flash存储器变得能够在100MHz进行工作,即使CPU1不具有指令高速缓冲存储器,也能够进行每个时钟周期工作。此外,在微型计算机MCU的工作时钟更高速化的情况下,也能够削减产生高速缓存不命中的情况下的等待的时钟周期数量。
实施方式6中记载的微型计算机MCU、CPU1的结构、功能、工作等,不用说也能够应用于实施方式1~4的微型计算机MCU、CPU1。
以上,详细地公开并记述了本发明的实施方式,但以上的记述只是对本发明的能够应用的方面进行例示,并不限定本发明。即,能够认为对于记述的方面的各种修正、变形例在不脱离本发明的范围的范围内。
附图标记说明
1 CPU、2 地址总线、3 数据总线、4 存储器、5 指令总线、9寄存器、11、13 对齐器、14 大端用外围数据总线、17 小端用外围数据总线、BSC 总线控制器、INTC中断控制器、PC 程序计数器、IR 指令寄存器、iDec 指令解码器。

Claims (14)

1.一种半导体集成电路装置,其特征在于,具备:
CPU;
总线;以及
对齐器,配置在所述CPU和所述总线之间,
所述CPU经由所述总线从存储器取得指令码,进行与该指令码对应的工作,取得为了进行与该指令码对应的工作所需要的数据,
所述指令码以被决定为小端或大端的任一方的字节序储存在所述存储器中,所述数据包含以N位(N=8×k:k是2以上的正整数)表示的向量地址信息,任意地决定以小端或大端的哪一种储存在所述存储器中,
在所述对齐器进行N位长的数据访问的情况下,与该数据是以小端或大端的哪一种进行储存无关地,以在所述存储器中储存的字节顺序对所述CPU供给该数据,在进行与N位不同的位长的数据访问的情况下,对应于该数据是以小端或大端的哪一种进行储存,变更在所述存储器中储存的字节顺序,向所述CPU供给。
2.一种数据处理装置,其特征在于,具备:
CPU,其具备寄存器;
指令总线,其字节序被固定为小端和大端中的一方,并且其转送信号量是N位,具备连接于所述CPU的一端,并且经由信号线与第1储存区域连接,该第1储存区域储存有能够进行数据的读出和写入的第1存储器内的指令码;
数据总线,对其字节序被可变地设定为所述小端和所述大端中的任一种的所述数据进行转送,并且其1次的转送信号量的最大值是所述N位,数据总线通过k根信号线构成,所述k根信号线与所述第1存储器内的、以字节单位储存所述数据的具有k(N=8×k:k是正整数)个地址的储存区域的各地址连接;以及
对齐器,对应于所述CPU输出的控制信号,连接所述数据总线的所述k根信号线、和所述寄存器内的、以字节单位储存所述数据的k个地址,
所述CPU也与存储向量表的非易失性的第2存储器的输出端连接,该向量表具备其各个尺寸是所述N位的多个向量地址,所述向量表将复位信号的接收、或除了所述复位信号的接收之外的特定的中断处理请求的接收的任一个作为要因,将所述N位的对应的向量地址输出到所述CPU,由此在所述CPU对所述第2存储器的所述向量表进行操作数访问时,
所述CPU基于所述对应的向量地址进行指令提取,并且
所述CPU在执行从所述第1存储器提取的指令码之前,在对所述第1存储器进行最大为所述N位的数据量的访问时,以数据在所述寄存器内,在与对应于所述指令总线的字节序的种类而决定的地址同样的地址、且总是以同一数据对齐进行储存的方式,通过所述控制信号控制所述对齐器的工作。
3.根据权利要求2所述的数据处理装置,其特征在于,
所述第1存储器和所述第2存储器均作为所述数据处理装置的结构要素,在与所述CPU同一或其它的任一个半导体芯片上搭载。
4.根据权利要求2所述的数据处理装置,其特征在于,
将所述CPU外围的各I/O装置和所述CPU间的数据总线,分离为小端专用的数据总线和大端专用的数据总线。
5.一种半导体集成电路装置,其特征在于,具备:
CPU;
第1和第2总线;以及
第1和第2对齐器,配置在所述CPU和所述第1及第2总线之间,
在所述第1总线连接有第1处理部,所述第1处理部以小端进行数据访问,
在所述第2总线连接有第2处理部,所述第2处理部以大端进行数据访问,
所述CPU在执行程序时从存储器取得指令码,进行与该指令码对应的工作,所述指令码被设为小端或大端的任一方的被决定的字节序,
所述第1对齐器将来自所述第1处理部的小端的数据对应于在所述CPU执行的程序的数据的字节序变更字节顺序,或者将来自所述CPU的数据变更为小端的字节顺序,
所述第2对齐器将来自所述第2处理部的大端的数据对应于在所述CPU执行的程序的数据的字节序变更字节顺序,或者将来自所述CPU的数据变更为大端的字节顺序。
6.根据权利要求5所述的半导体集成电路装置,其特征在于,
来自所述第1处理部的小端的数据和来自所述第2处理部的大端的数据在向量地址信息表示的N位(N=8×k:k是2以上的正整数)长中成为相同的字节顺序。
7.一种半导体集成电路装置,其中,具备:
CPU,其具有寄存器;
总线;
中断控制部;以及
存储器,
CPU经由所述总线从所述存储器取得指令,进行与该指令对应的工作控制,为了对应于来自所述中断控制部的中断通知进行与该中断通知对应的处理,取得中断处理程序的储存地址,
所述存储器被分割为:第1区域,储存第1程序和在所述第1程序的处理中使用的第1数据;第2区域,储存第2程序和在所述第2程序的处理中使用的第2数据;第3区域,储存所述中断处理程序;以及第4区域,储存所述中断处理程序的储存地址,
所述第1程序和所述第2程序在各个处理中的数据的字节序不同,
与是所述第1程序的执行中还是所述第2程序的执行中无关地,在用于从所述存储器取得所述中断处理程序的储存地址的数据转送中,能够不变更从所述存储器向所述总线输出的数据的字节单位的顺序来取得。
8.根据权利要求7所述的半导体集成电路装置,其中,所述中断处理程序的储存地址是经由所述总线在一次数据转送中能够转送的数据尺寸,所述中断处理程序的储存地址通过一次数据转送向所述CPU转送。
9.根据权利要求7所述的半导体集成电路装置,其中,
在所述第1程序的执行中以与所述中断处理程序的储存地址相同数据尺寸通过一次的数据转送取得所述第1数据的情况下,和在所述第2程序的执行中以与所述中断处理程序的储存地址相同数据尺寸通过一次的数据转送取得所述第2数据的情况下,能够不变更从所述存储器对所述总线输出的数据的字节单位的顺序而向所述寄存器转送进行处理,
在所述第1程序的执行中以与所述中断处理程序的储存地址不同数据尺寸通过一次的数据转送取得所述第1数据的情况下,和在所述第2程序的执行中以与所述中断处理程序的储存地址不同数据尺寸通过一次的数据转送取得所述第2数据的情况下,能够通过变更从所述存储器对所述总线输出的数据的字节单位的顺序并向所述寄存器转送来进行处理。
10.根据权利要求7所述的半导体集成电路装置,其中,
所述总线具有:指令总线,为了取得所述指令而使用;以及数据总线,用于所述第1数据或所述第2数据的数据转送,
使用所述数据总线,进行与所述中断通知对应的所述中断处理程序的储存地址的取得。
11.根据权利要求7所述的半导体集成电路装置,其中,
所述总线连接于对齐器,该对齐器用于在与存储器之间的数据转送中变更数据的字节单位的顺序。
12.根据权利要求11所述的半导体集成电路装置,其中,
所述对齐器被供给控制信号,该控制信号根据是所述第1数据的取得还是所述第2数据的取得的识别信息和表示数据转送尺寸的信息而生成,控制数据的字节单位的顺序的变更。
13.根据权利要求7所述的半导体集成电路装置,其中,
所述总线连接于第2对齐器,
所述第2对齐器经由第1外围总线连接于第1外围电路,经由第2外围总线连接于第2外围电路,
所述第1外围电路和所述第2外围电路在各个处理中的数据的字节序不同,
所述第2对齐器在所述第1外围电路或所述第2外围电路与所述寄存器或所述存储器之间的数据转送中,在以用于取得所述中断处理程序的储存地址的数据转送尺寸的数据转送中,进行数据转送的控制,该数据转送的控制不变更输出到所述第1外围总线或所述第2外围总线的数据的字节单位的顺序,在以与用于取得所述中断处理程序的储存地址的数据转送尺寸不同的转送尺寸的数据转送中,进行数据转送的控制,该数据转送的控制变更输出到所述第1外围总线或所述第2外围总线的任一方的数据的字节单位的顺序。
14.根据权利要求13所述的半导体集成电路装置,其中,所述第1外围电路通过所述第1程序被控制,所述第2外围电路通过所述第2程序被控制。
CN2009801356167A 2008-09-12 2009-05-28 数据处理装置及半导体集成电路装置 Pending CN102150139A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510321721.7A CN105893270A (zh) 2008-09-12 2009-05-28 数据处理装置及半导体集成电路装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008234768 2008-09-12
JP2008-234768 2008-09-12
PCT/JP2009/059738 WO2010029794A1 (ja) 2008-09-12 2009-05-28 データ処理装置及び半導体集積回路装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201510321721.7A Division CN105893270A (zh) 2008-09-12 2009-05-28 数据处理装置及半导体集成电路装置

Publications (1)

Publication Number Publication Date
CN102150139A true CN102150139A (zh) 2011-08-10

Family

ID=42005057

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201510321721.7A Pending CN105893270A (zh) 2008-09-12 2009-05-28 数据处理装置及半导体集成电路装置
CN2009801356167A Pending CN102150139A (zh) 2008-09-12 2009-05-28 数据处理装置及半导体集成电路装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201510321721.7A Pending CN105893270A (zh) 2008-09-12 2009-05-28 数据处理装置及半导体集成电路装置

Country Status (5)

Country Link
US (1) US9524237B2 (zh)
JP (3) JP5292406B2 (zh)
CN (2) CN105893270A (zh)
TW (2) TWI541658B (zh)
WO (1) WO2010029794A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102968330A (zh) * 2012-11-27 2013-03-13 武汉大学 一种固件代码反汇编中端模式差异的处理方法
CN103576739A (zh) * 2012-08-02 2014-02-12 中兴通讯股份有限公司 数字芯片、具有数字芯片的设备和大小端模式配置方法
WO2019128575A1 (zh) * 2017-12-28 2019-07-04 中兴通讯股份有限公司 一种中断处理方法及中断处理装置
CN110647355A (zh) * 2018-06-27 2020-01-03 上海寒武纪信息科技有限公司 数据处理器和数据处理方法
TWI749724B (zh) * 2020-08-21 2021-12-11 和碩聯合科技股份有限公司 電子電路系統

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4437464B2 (ja) 2005-06-01 2010-03-24 株式会社ルネサステクノロジ 半導体装置及びデータ処理システム
JP5622429B2 (ja) 2010-04-20 2014-11-12 ルネサスエレクトロニクス株式会社 マイクロコンピュータ
US8578340B1 (en) 2010-09-24 2013-11-05 Ca, Inc. Recording and replaying computer program execution with recorded execution event breakpoints
US9762246B2 (en) * 2011-05-20 2017-09-12 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device with a storage circuit having an oxide semiconductor
FR2977371B1 (fr) * 2011-06-30 2013-08-02 Trixell Matrice de pixels a groupements programmables
US9507595B2 (en) * 2014-02-28 2016-11-29 International Business Machines Corporation Execution of multi-byte memory access instruction specifying endian mode that overrides current global endian mode
US10120682B2 (en) * 2014-02-28 2018-11-06 International Business Machines Corporation Virtualization in a bi-endian-mode processor architecture
US9619214B2 (en) 2014-08-13 2017-04-11 International Business Machines Corporation Compiler optimizations for vector instructions
JP6372250B2 (ja) * 2014-08-25 2018-08-15 サンケン電気株式会社 演算処理装置
US9588746B2 (en) 2014-12-19 2017-03-07 International Business Machines Corporation Compiler method for generating instructions for vector operations on a multi-endian processor
US10169014B2 (en) 2014-12-19 2019-01-01 International Business Machines Corporation Compiler method for generating instructions for vector operations in a multi-endian instruction set
US9880821B2 (en) 2015-08-17 2018-01-30 International Business Machines Corporation Compiler optimizations for vector operations that are reformatting-resistant
US9594668B1 (en) 2015-09-04 2017-03-14 International Business Machines Corporation Debugger display of vector register contents after compiler optimizations for vector instructions
CN105404496B (zh) * 2015-11-06 2018-11-16 深圳国微技术有限公司 数据传输的控制方法和控制装置及具有其的微处理器
US10079067B1 (en) * 2017-09-07 2018-09-18 Winbond Electronics Corp. Data read method and a non-volatile memory apparatus using the same
CN112835842B (zh) * 2021-03-05 2024-04-30 深圳市汇顶科技股份有限公司 端序处理方法、电路、芯片以及电子终端
JP2023044909A (ja) * 2021-09-21 2023-04-03 株式会社日立製作所 プロセッサおよびエンディアン変換方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0997211A (ja) * 1995-09-29 1997-04-08 Matsushita Electric Ind Co Ltd バス制御装置、及びバス制御装置を含む情報処理装置
US5687337A (en) * 1995-02-24 1997-11-11 International Business Machines Corporation Mixed-endian computer system
JP2000003304A (ja) * 1998-06-12 2000-01-07 Nec Corp データ処理装置とデータアライン装置
US20080040576A1 (en) * 2006-08-09 2008-02-14 Brian Michael Stempel Associate Cached Branch Information with the Last Granularity of Branch instruction in Variable Length instruction Set

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2585569B2 (ja) * 1987-02-27 1997-02-26 株式会社日立製作所 直接メモリアクセス制御装置
JPH0336643A (ja) * 1989-07-03 1991-02-18 Nec Corp データ処理方法
EP0470570B1 (en) * 1990-08-09 1997-01-29 Silicon Graphics, Inc. Method and apparatus for byte order switching in a computer
US5627975A (en) * 1994-08-02 1997-05-06 Motorola, Inc. Interbus buffer for use between a pseudo little endian bus and a true little endian bus
US5928349A (en) * 1995-02-24 1999-07-27 International Business Machines Corporation Mixed-endian computing environment for a conventional bi-endian computer system
US5734910A (en) * 1995-12-22 1998-03-31 International Business Machines Corporation Integrating multi-modal synchronous interrupt handlers for computer system
US5961640A (en) * 1997-04-22 1999-10-05 Vlsi Technology, Inc. Virtual contiguous FIFO having the provision of packet-driven automatic endian conversion
JP2000082009A (ja) * 1998-09-04 2000-03-21 Hitachi Ltd データ処理装置
JP3659048B2 (ja) * 1999-02-16 2005-06-15 株式会社日立製作所 オペレーティングシステム及び計算機
US7404019B2 (en) * 2003-03-07 2008-07-22 Freescale Semiconductor, Inc. Method and apparatus for endianness control in a data processing system
JP4446373B2 (ja) * 2003-03-19 2010-04-07 パナソニック株式会社 プロセッサ、データ共有装置
US6993619B2 (en) * 2003-03-28 2006-01-31 International Business Machines Corporation Single request data transfer regardless of size and alignment
GB2409067B (en) * 2003-12-09 2006-12-13 Advanced Risc Mach Ltd Endianess compensation within a SIMD data processing system
JP2008033722A (ja) * 2006-07-31 2008-02-14 Matsushita Electric Ind Co Ltd エンディアン変換回路を備えたデータ転送制御装置
US7624251B2 (en) * 2006-11-01 2009-11-24 Apple Inc. Instructions for efficiently accessing unaligned partial vectors

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5687337A (en) * 1995-02-24 1997-11-11 International Business Machines Corporation Mixed-endian computer system
JPH0997211A (ja) * 1995-09-29 1997-04-08 Matsushita Electric Ind Co Ltd バス制御装置、及びバス制御装置を含む情報処理装置
JP2000003304A (ja) * 1998-06-12 2000-01-07 Nec Corp データ処理装置とデータアライン装置
US20080040576A1 (en) * 2006-08-09 2008-02-14 Brian Michael Stempel Associate Cached Branch Information with the Last Granularity of Branch instruction in Variable Length instruction Set

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103576739A (zh) * 2012-08-02 2014-02-12 中兴通讯股份有限公司 数字芯片、具有数字芯片的设备和大小端模式配置方法
CN102968330A (zh) * 2012-11-27 2013-03-13 武汉大学 一种固件代码反汇编中端模式差异的处理方法
CN102968330B (zh) * 2012-11-27 2015-08-19 武汉大学 一种固件代码反汇编中端模式差异的处理方法
WO2019128575A1 (zh) * 2017-12-28 2019-07-04 中兴通讯股份有限公司 一种中断处理方法及中断处理装置
CN109977061A (zh) * 2017-12-28 2019-07-05 中兴通讯股份有限公司 一种中断处理方法及中断处理装置
CN109977061B (zh) * 2017-12-28 2023-04-11 中兴通讯股份有限公司 一种中断处理方法及中断处理装置
CN110647355A (zh) * 2018-06-27 2020-01-03 上海寒武纪信息科技有限公司 数据处理器和数据处理方法
CN110647355B (zh) * 2018-06-27 2021-11-26 上海寒武纪信息科技有限公司 数据处理器和数据处理方法
TWI749724B (zh) * 2020-08-21 2021-12-11 和碩聯合科技股份有限公司 電子電路系統

Also Published As

Publication number Publication date
JP5521092B2 (ja) 2014-06-11
JP2014179107A (ja) 2014-09-25
US20110191569A1 (en) 2011-08-04
TW201020795A (en) 2010-06-01
TWI541658B (zh) 2016-07-11
JPWO2010029794A1 (ja) 2012-02-02
CN105893270A (zh) 2016-08-24
TW201530320A (zh) 2015-08-01
US9524237B2 (en) 2016-12-20
JP5802791B2 (ja) 2015-11-04
TWI476597B (zh) 2015-03-11
JP2013229039A (ja) 2013-11-07
WO2010029794A1 (ja) 2010-03-18
JP5292406B2 (ja) 2013-09-18

Similar Documents

Publication Publication Date Title
CN102150139A (zh) 数据处理装置及半导体集成电路装置
JP6143872B2 (ja) 装置、方法、およびシステム
US5371860A (en) Programmable controller
US7937559B1 (en) System and method for generating a configurable processor supporting a user-defined plurality of instruction sizes
US7346881B2 (en) Method and apparatus for adding advanced instructions in an extensible processor architecture
US20060206690A1 (en) MAXQ microcontroller
KR20010043826A (ko) 마이크로 컨트롤러 명령어 집합
JP2004086837A (ja) データ処理装置
US6012138A (en) Dynamically variable length CPU pipeline for efficiently executing two instruction sets
CN101515229B (zh) 数据处理器
JP4800582B2 (ja) 演算処理装置
KR19980018065A (ko) 스칼라/벡터 연산이 조합된 단일 명령 복수 데이터 처리
JP2007317152A (ja) 情報処理装置
JP3182591B2 (ja) マイクロプロセッサ
CN112559037A (zh) 一种指令执行方法、单元、装置及系统
KR100308182B1 (ko) 데이터처리시스템및이시스템의동작방법
Nelson Computer Architecture
JP2003263311A (ja) 並列演算処理装置及び並列演算処理用の命令コードのデータ構造、並びに並列演算処理用の命令コードの生成方法
JPH11143710A (ja) 処理対象値入力装置及びプログラム変換装置
EP0978792A1 (en) Programmable architecture computer
US20050188183A1 (en) Digital signal processor having data address generator with speculative register file
JPH0769805B2 (ja) データ処理装置
JPH1173314A (ja) マイクロプロセッサ
JPH0412860B2 (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
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20110810