CN1285934A - 微处理器,尤其用于芯片卡的微处理器 - Google Patents

微处理器,尤其用于芯片卡的微处理器 Download PDF

Info

Publication number
CN1285934A
CN1285934A CN98812888.8A CN98812888A CN1285934A CN 1285934 A CN1285934 A CN 1285934A CN 98812888 A CN98812888 A CN 98812888A CN 1285934 A CN1285934 A CN 1285934A
Authority
CN
China
Prior art keywords
microprocessor
sector
register
instruction
dec1
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
CN98812888.8A
Other languages
English (en)
Other versions
CN1165839C (zh
Inventor
E·布尤克斯
B·沙拉
S·科梅西尔
N·庞瑙德
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.)
Inside Technologies SA
Original Assignee
Inside Technologies SA
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 Inside Technologies SA filed Critical Inside Technologies SA
Publication of CN1285934A publication Critical patent/CN1285934A/zh
Application granted granted Critical
Publication of CN1165839C publication Critical patent/CN1165839C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

本发明涉及一种流水线型微处理器(MP),它包括:第一流水线级(ST1),其具有使记录在存储器(MEM)中的程序指令(CODEOP,ADRs,ADRd)读出及解码的装置(IPC,MMU,PC,B2,DEC1),与第一流水线级相邻接的第二流水线级(ST2),其包括在微处理器时钟信号(H1)互补半周期中彼此先后启动的两个扇区(ST21,ST22)。第一扇区(ST21)读取被保存在微处理器寄存器组(BANK1,BANK2)的两个寄存器(Rd Rs)中的数据及根据在上一时钟周期上由第一流水线级(ST22)接收的指令(CODEOP,ADRs,ADRd)对所述数据执行运算。第二扇区(ST22)包括用于将运算结果记录到所述寄存器组(BANK1,BANK2)的一个寄存器中的装置(B4,DEC1)。它尤其用于芯片卡。

Description

微处理器,尤其用于芯片卡的微处理器
本发明涉及一种主要用于但非唯一用于集成在芯片卡中的微处理器,更具体地,涉及用于无触点的感应类型的芯片卡中的微处理器。
通过电磁感应供电的无触点感应式芯片卡必需遵守技术上对立的限制。一方面,它们的电能源弱并依赖于它们的天线线圈与卡阅读器的供电线圈之间的距离。该距离为几厘米,可随着使用者的移动而强烈地变化,以致于通过感应所得到的供电电压可强烈地波动且变得很弱。另一方面,芯片卡应提供保证电子交易快速处理的高工作速度。例如,一个用于存取控制的电子标签类型的芯片卡由使用者提供到控制终端前。卡提供到终端前的周期应很短,约几个毫秒。在该周期期间,卡由感应供电并应进行多个操作,例如产生及发送认证码,发送识别号,可能在其存储器中存储“开门请求”事项、日期及地点,…。
现在,随着集成电路、尤其是CMOS技术电路的工作速度的增快,耗电量同时地增加。因此,无触点芯片卡的微处理器应该速度快而同时耗电量小。
直到目前,在设有触点的芯片卡中使用了简单但老设计的微处理器,它的唯一优点确实在于成本低及硅表面的占用小。随着无触点芯片卡的出现,这些微处理器显得已过时并不能满足上述的要求。
此外,公知了流水线型(type pipeline)的、即交迭了指令的复杂微处理器,它的优点是工作速度高。但是,这些微处理器具有一定复杂性、占用空间及成本,这使得它们不适于被集成在芯片卡中。
本发明的目的是提供一种微处理器,它的设计简单、占用空间小及耗电少,并同时对程序指令的处理速度高。
为了实现该目的,本发明的构思是,制作一种流水线型的微处理器,以便从交迭指令的优点中获益,但其中程序指令的处理是在最小的流水线周期上完成的,并以更简单的方式动用了最少数目的流水线级,以便减少同时启动的逻辑门的数目及耗电。
更具体地,本发明提供了一种流水线型微处理器,它包括:第一流水线级,其具有使记录在存储器中的程序指令读出及解码的装置,与第一流水线级相邻接的第二流水线级,其包括在微处理器时钟信号互补半周期中彼此先后启动的两个扇区,第一扇区包括读取被保存在微处理器寄存器组的两个寄存器中的数据及根据在上一时钟周期上由第一流水线级接收的指令对数据执行运算的装置,第二扇区包括用于将运算结果记录到寄存器组的一个寄存器中的装置。
根据一个实施形式,第一流水线级包括在时钟信号互补半周期中启动的两个扇区,第一流水线级的第一扇区包括读存储器中指令的装置,第一流水线级的第二扇区包括指令的解码装置。
根据一个实施形式,第二流水线级的第一扇区包括一个算术及逻辑单元及一个移位电路。
根据一个实施形式,第二流水线级的第一扇区包括用于在一个时钟半周期中执行将第一个二进位字的一个位与第二个二进位字的位相链接的装置。
根据一个实施形式,读及解码的装置被设置来解码紧致指令,该紧致指令包括指令码,寄存器组的第一寄存器地址及第二寄存器地址。
本发明也涉及一种流水线微处理器,它包括一个读装置及对记录在存储器中的程序指令解码的装置,寄存器组及计算和处理数据的装置,其中读装置及解码装置被设置在第一流水线级,计算及处理装置被设置在与第一流水线级相邻接的第二流水线级的第一扇区中,第一扇区在微处理器时钟信号第一半周期中被启动,寄存器组用读模式设置在第二流水线级的第一扇区中及用写模式设置在第二流水线级的第二扇区中,第二扇区在时钟的第二半周期中被启动。
根据一个实施形式,存储器用写模式设置在第二流水线级的第二扇区中。
根据一个实施形式,计算和处理装置包括用于在一个时钟半周期中执行将第一个二进位字的一个位与第二个二进位字的位链接操作的装置。
本发明还涉及由微处理器处理从存储器中读出指令的方法,该微处理器包括一个寄存器组,指令解码装置及指令执行装置,该方法包括提取第一地址、第二地址、及包含在指令中的操作码、具有微处理器一个时钟周期的最大持续时间的第一步骤;及同时读由从第一步骤期间的指令中提取的地址所识别的第一及第二寄存器,并根据寄存器的内容在一个时钟半周期持续时间上执行由指令操作码识别的算术或逻辑运算的第二步骤;及一个时钟半周期持续时间上将运算结果记录到寄存器组的一个寄存器中的第三步骤。
根据一个实施形式,该结果寄存在第一及第二寄存器的一个中。
在以下参照附图以非限制方式对根据本发明的微处理器的总体结构及实施形式的描述中将更详细地说明本发明的这些及其它的特征及优点,
附图为:
-图1概要地表示根据本发明的微处理器的总体结构,
-图2以更详细的方式表示图1微处理器的一个实施例,
-图3表示图2中以框图形式示出的一个电路的结构。
根据本发明的一个微处理器的总体结构
图1表示根据本发明的一个微处理器MP的总体结构。该微处理器是流水线型的并通过交迭指令工作。该微处理器被设计来执行紧致指令,它在此以下列格式表示:
CODEOP ADRd ADRs -
这些指令在这里以16位编码,其包括以4位编码的待执行的运算操作OP的码CODEop,以4位编码的结果终点寄存器Rd的地址ADRd,及4位编码的源寄存器Rs的地址ADRs(这里,最后一个指令扇区未使用)。运算操作例如是:加法ADD(将Rs与Rd相加及将结果存储到Rd中),减法SUB(从Rs减去Rd及将结果存储到Rd中),逻辑“或”OU(在Rd中存储Rs“或”Rd的结果),逻辑“与”ET,等…。
该微处理器传统地包括一个中心单元CORE,寄存器组RBANK程序存储器MEM。中心单元CORE包括一个对存储在存储器MEM中的指令读及解码的级ST1及一个执行这些指令的级ST2。每个级各被分成交替工作的两个扇区ST11/ST12,ST21/ST22。扇区ST11用于读指令(“读取”周期),及扇区ST12用于解码指令。扇区ST21用于读寄存器组RBANK中的所述“源”Rs及“终点”Rd寄存器,及执行由指令码CODEop确定的运算。扇区ST22用于将结果记录到终点寄存器Rd或存储器MEM中。
每个级的第一扇区ST11,ST21由微处理器的时钟信号H1启动,第二扇区ST21,ST22被移相180°的信号H2启动。为了表达这些概念,信号H1,H2被表示在图1中。于是,每个流水线级ST1,ST2工作在一个时钟周期H1上及每个扇区工作在一个时钟半周期上。该微处理器的工作用下列的表格表示,它描述了两个相继指令的处理顺序。表1
流水线周期 流水线周期 流水线周期
1/2周期 1/2周期 1/2周期 1/2周期 1/2周期 1/2周期
H1=1 H2=1 H1=1 H2=1 H1=1 H2=1
步骤1.1 步骤1.2 步骤1.3 步骤1.4
步骤2.1 步骤2.2 步骤2.3 步骤2.4
第一指令在4个步骤1.1至1.4上被处理,及第二指令在4个步骤2.1至2.4上被处理。步骤1.1,2.1是在扇区ST11中读指令及执行的步骤。步骤1.2,2.2是在扇区ST12中解码指令及执行的步骤。在扇区ST21中执行的步骤1.3,2.3是读寄存器Rd,Rs及根据指令码CODEop并基于这些寄存器的内容执行运算的步骤。最后,步骤1.4,2.4是在扇区ST21中执行的将结果记录到寄存器Rd中的步骤。
因此当该流水线链被触发时在一个流水线时钟周期上执行这些指令。这些扇区ST11,ST21被同时启动,然后扇区ST12,ST22被同时启动。因此该微处理器的结构体现了快速的优点。它也便于实施及减小空间,如以下将描述的。
根据本发明的微处理器的实施例
图2表示微处理器MP的一个实施例。在该图上,流水线级ST1,ST2以寄存器B1,B2为界线。寄存器B1例如是一个三态缓冲器,当时钟信号H1为1时,它是穿透的。寄存器B3是一个闭锁寄存器,当时钟信号变为1时它被启动。ST1级的扇区ST11,ST12以寄存器B2为界,该寄存器例如是一个当信号H2变为1时被启动的闭锁寄存器。扇区ST21,ST22以寄存器B4为界,该寄存器例如为一个三态缓冲器,当时钟信号H2为1时,它是穿透的。因此,时钟信号H1与级ST1的数据向级ST2的转移同步,及移相信号H2与每个流水线级的第一扇区ST11,ST21的数据向第二扇区ST12,ST22的转移同步。
如图所示,微处理器的中心单元基本包括一个解码器DEC1,一个算术及逻辑计算单元ALU及一个移相电路BSHIFT。解码器DEC1设置在扇区ST12中,而单元ALU及电路BSHIFT设置在扇区ST21中。此外,可看到已述的程序存储器MEM及寄存器组,后者在这里以软件寄存器组SBANK及硬件寄存器组HBANK的形式表示。为了简化附图,存储器MEM及寄存器组被表示在微处理器流水线级ST1,ST2之中,因此与中心单元的部分相混合。
解码器DEC1保证了保持在存储器中的指令的解码及这些指令处理的内部步骤顺序。为此,解码器通过寄存器B2连接到存储器MEM的读输出端OUTm,以便在每个时钟周期上接收新的待处理指令。
寄存器组SBANK包括各种工作寄存器,例如16个寄存器R0至R15(未示出)。组SBANK包括一个输入端IADRs、用于接收源寄存器Rs的地址ADRs,及一个输入端IADRs、用于接收终点寄存器Rd的地址。组SBANK还包括源寄存器Rd的读输出端OUTRd,及用于将结果写入终点寄存器Rd的输入端INRd。
组SBANK包括各种传统类型的微处理器状态寄存器,例如状态寄存器RS(“Status Register”),栈指针寄存器SP(“StackPointer”),…。这些寄存器除寄存器Rf(“特征位寄存器”)及寄存器PC(“程序计数器”)外均未示出。寄存器Rf通常包括微处理器的特征位C,N,P,Z,即和进位特征位C,符号特征位N,奇偶特征位P及零值特征位Z。寄存器PC或顺序计数器包括存储器MEM中待读指令的紧致地址及在每个新时钟周期上被电路IPC递增,这将在后面描述。
类似于组SBAND,组HBANK可从微处理器的数据路径进入读或写,该组还包括输入端IADRs,IADRd,一个输出端OUTRs及一个用于借助来自解码器DEC1的信号WRs/d选择地在寄存器Rd或Rs中写结果的输入端IN。
组SBANK,HBANK的输入端IADRs,IADRd借助解码器DEC1接收包含在紧致指令中的地址ADRs,ADRd,紧致指令的总体格式在前面已有描述。通常,解码器DE1根据接收的指令码CODEop选择地向两个组中的仅一个发送地址ADRs,ADRd。但是,也可将两个地址ADRs,ADRd中的一个发送给组SBANK,及另一个发送给组HBANK。
存储器MEM包括一个数据输入端INm,它通过寄存器B4,B1连接到组SBANK的输出端OUTRd。此外,存储器MEM通过缓冲寄存器B1在一个地址输入端IADm上接收来自单元MMU(“存储器管理单元”)或地址转换器的32位扩展地址Adm。该单元MMU本身在其输入端接收寄存器PC提供的16位紧致地址ADi或由解码器DEC1提供的的紧致地址Adrec。在单元MMU的输入端的地址ADi或地址Adrec的选择由信号SEL1控制的多路复用器MUX1作出的。单元MMU及多路复用器MUX1的工作将在后面描述。
存储器MEM及寄存器组SBANK,HBANK在读时由信号RDH1控制及在写时由信号WDH2控制。这些信号由解码器DEC1发送。读信号RDH1在时钟信号H1变为1时发送及写信号WDH2在时钟信号H2变为1时发送。因此组SBANK,HBANK在读时属于级ST2的第一扇区ST21,及在写时属于级ST2的第二扇区ST22。同样地,存储器MEM在读时(输出端OUTm)属于级ST1的扇区ST11,及在写时(输入端INm)属于级ST2的扇区ST22。
单元ALU在这里包括两个输入端IN1,IN2,一个结果输出端OUT,及一个提供特征位C(“进位”)的输出端C。输入端IN1与组SBANK的输出端OUTRd相连接。输入端IN2与由信号SEL2控制的多路复用器MUX2的输出端连接,该多路复用器输入端中的两个接收组SBANK的输出OUTRs及组HBANK的输出OUTRs。此外多路复用器MUX2的输出端还连接到16/1类型的多路复用器MUX3的输入端,后者的作用是从由输入端接收的16个位中选择一个位bI。多路复用器MUX3被以4位编码的信号ADBi控制,该信号代表地址或待选择的位序号并由解码器DEC1在接收到一个专门指令时输出,这将在后面描述。
电路BSHIFT包括与ALU的输出OUT连接的16个位输入端e0至e15’一个辅助输入端e16及16个位输出端s0至s15。辅助输入端e16接收由信号SEL4控制的多路复用器MUX4的输出。多路复用器MUX4在输入端接收一个0值位,一个1值位,及微处理器的特征位C,N,P,Z,及多路复用器MUX3的输出(位bi)。输出端s0至s15借助扇区ST22中的寄存器B4转移到扇区ST22中并形成微处理器数据路径终端的母线10。母线10被连接到组SBANK的输入端INRd及组HBANK的输入端IN。母线10还通过寄存器B3连接到多路复用器MUX2的第三输入端。
电路BSHIFT可被禁止或为有效。在禁止状态,电路BSHIFT可被穿透及输出端s15至s0将复制输入端e15至e0。在有效状态下,电路BSHIFT使其输出相对其输入移位。输出s14至s0分别复制输入端e15至e1及输出s15复制辅助输入端e16输入端e0在此情况下与数据路径断开。
电路BSHIFT还包括在每次执行运算后输出微处理器的4个特征位C,N,P,Z的输出端OUTF。为此,由单元ALU输出的位C被加到该电路BSHIFT的一个输入端INC上。当电路BSHIFT可穿透时输出端OUTF复制由单元ALU输出的位C。当电路BSHIFT使其输出移位时,由单元ALU输出的位C是出现在输入端e0上的位。输出OUTF通过寄存器B4发送到组HBANK的寄存器Rf的输入端,用于存储该特征位,及发送到多路复用器MUX4的输入端,以可能将一个特征位注入到数据路径中。
单元ALU及电路BSHIFT由解码器DEC2控制,后者从解码器DEC1接收待执行的运算码(当接收的指令时算术或逻辑运算时)。该码通过寄存器B3传送到解码器DEC2,以便使流水线级很好地同步。
最后,从以上可看到,在扇区ST21中执行运算的结果根据接收的指令可记录在:
(ⅰ)-组SBANK的终点寄存器Rd中,它的地址ADRd由指令给出,
(ⅱ)-组HBANK的寄存器Rs,Rd中,它们的地址由指令给出,及借助信号WRs/D作出选择。
情况(ⅰ)更普遍并相应于执行算术及逻辑指令,其例子在下面给出。情况(ⅱ)能够管理硬件寄存器及因简明起见在下面不再描述。对于本领域的技术人员显然可设置不同于以下作为例子描述的指令,以便开发根据本发明的微处理器提供的所有可能性。
运算的结果也可借助多路复用器MUX2再注入到数据路径中。最后,组SBANK的寄存器的内容被记录在存储器MEM中,如从下面可看到的。
正如本领域的技术人员清楚看到的,根据本发明的微处理器具有能保证小耗电量的特别简单的结构。用于限制耗电的一个附加措施在于,在组HBANK,SBANK的输出端OUTRs,OUTRd上设置缓冲寄存器,它们由相对信号H1位移时间△t的信号H1’控制。于是,单元ALU仅在输出端OUTRs,OUTRd稳定时才连接在这些输出端上。位移信号H1’可借助延时电路、如级联的反相门简单地实现。
现在将描述以例子方式选择的某些指令的执行,以便说明微处理器的工作。
算术或逻辑类型的指令的执行
这些指令的一般格式已在上面描述了。例如可参照以下的指令顺序:
(1)SUB R1,R2(从R1减去R2及将结果存入R1)
(2)OR R0,R1(将R0及R1逐位地逻辑“或”及将结果存入R0)。
这些指令由存储器MEM以下列形式输出:
以下描述由微处理器根据步骤1.1至1.4及2.1至2.4执行的程序,它们的交迭如以上表1中所指出的。在这些步骤的每个中实现的各种运算是根据通过微处理器各单元的数据流以异步方式进行的,并考虑为在每个步骤的最后完成的。
1.1-读指令“SUB R1,R2”(H1=1,H2=0,缓冲寄存器B1可穿透,扇区ST11有效)。这里,解码器DEC1发送信号RDH1及指令被读到存储器MEM中。
1.2-解码指令(H1=0,H2=1,寄存器B2被启动,扇区ST12有效)。这里,解码器DEC1解码指令,设立多路复用器MUX2的控制信号,将地址ADR1,ADR2发送给组SBANK,及将减法运算码CODESUB发送给解码器DEC2。
1.3-读寄存器及执行指令(H1=1,H2=0,寄存器B3被启动,扇区ST21有效)。组SBANK接收地址ADR1,ADR2,解码器DEC2接收码CODESUB及解码器DEC1发送读信号RDH1。寄存器R1,R2被读出,及它们的内容被施加在单元ALU的输入端IN1,IN2上,该单元输出减法[R1-R2]的结果。
1.4-记录结果(H1=0,H2=1,寄存器B4可穿透,扇区ST22有效)。解码器DEC1将写信号WRH2施加给组SBANK。电路BSHIFT可穿透,减法[R1-R2]的结果又到达组SBANK的输入端INRd上,并被记录到寄存器R1中。
2.1-读指令“OR R0,R1”。该步骤与步骤1.1相同。
2.2-解码指令。该步骤与步骤1.2相同。
2.3-执行指令,该步骤与步骤1.3相同。源寄存器及终点寄存器现在为R1,R0及单元ALU被解码器DEC2设置以对这些寄存器中寄存的字逐位地执行逻辑“或”。
2.4-记录结果。该步骤与步骤1.4相同,结果的终点寄存器现在是寄存器R0。
当然,也可使用另外的算术或逻辑指令。例如,除法及乘法运算,通常这需要位的不同位移,位移可借助位移电路BSHIFT来实现。该电路被设计仅用于多个位序号向左或向右的位移。此外,可看到,电路BSHIFT的输入端e16及多路复用器MUX4允许在结果中注入在先结果的特征位C,P,N,Z或预定值1或0。另外,由于母线10发送回到多路复用器MUX2的输入端,重复操作可有序链接,而无需在每个步骤上将中间结果寄存到终点寄存器中。
程序计数器的递增及执行跳变或转移指令
图3以更详细的方式表示寄存器PC或程序计数器的递增电路IPC。电路IPC包括一个加法器ADT及两个多路复用器MXA,MXB。多路复用器MXA在其输入端接收值1的一个位,这里它代表寄存器PC增量的常规值,及接收16位的地址VAL。加法器ADT在其输入端接收寄存在寄存器PC中的当前地址ADi及多路复用器MXA的输出。加法器ADT的输出施加到多路复用器MXB的一个输入端,其另一输入端接收值VAL。多路复用器MXB的输出端将一个地址ADi+1输出到寄存器PC的输入端。多路复用器MXA,MXB由解码器DEC1输出的三态选择信号SEL5控制。
因此,由电路IPC提供的地址ADi+1可等于ADi+1(递增1),ADi+VAL(程序计数器跳动),或VAL(程序计数器转移)。增量1在这里相应于程序计数器的常规增量。当解码器DEC1接收到JMP(跳动)或CALL(转移)指令时执行值跳动或转移,它们可用下列格式设置:
CODEJMP - - VAL
CODECALL - - VAL
当每次启动扇区ST11时,从寄存器PC中读出地址ADi。当扇区ST12有效时,由电路IPC输出的新地址ADi+1通过施加信号WRH2被记录到寄存器PC中。为了有助于这些操作的同步,可以将解码器DEC1的一部分功能转移到扇区ST11中,-例如以预解码电路的形式,以使得JMP或CALL类型的指令可在扇区ST11中被预解码。
正如已指出的,当前地址ADi以16位编码并被施加给单元MMU,后者将其转换为存储器MEM的地址格式,例如32位。单元MMU以传统方式转换地址ADi,即通过与一个32位的偏移地址OFFAD链接或相加。在图2上,单元MMU是一个在输入端接收地址ADi及地址OFFAD的加法器。偏移地址可存储到组HBANK的寄存器中,以便在执行程序时以动态的方式修改。
将结果装载到存储器中的指令的执行
在借助信号SEL1转换多路复用器MUX1时,解码器DEC1还可对单元MMU的输入端发送由解码器DEC1输出的地址Adrec。该地址从装载指令REC中提取,该装载指令可用下列格式设置:
COREREC ADRs ADrec
该指令指定组SBANK,HBANK之一中的一个寄存器Rs,它的内容应记录在存储器MEM中逻辑地址Adrec上。组SBANK,HBANK之间的区别是由码CODEREc作出的,该码可具有多个值。指令REC在级ST1中,在一个时间周期上被读出及解码,然后在级ST2中,在一个时间周期上被执行。更具体地,在扇区ST21有效期间寄存器Rs被读出及它的内容在扇区ST21有效期间被记录到存储器(输入端INm)中。在该特定情况下,流水线的工作应被中断。实际上,存储器不能同时记录出现在扇区ST22中的一个值并读扇区ST11中的一个新指令。允许流水线链不中断的一个解决方案在于:设置一个不同于程序存储器的数据存储器,它仅用于级ST1中的读和写。
如其本身那样,可看到,对于在级ST2中执行动用微处理器的寄存器的闭环操作给予优先权。该特征是本发明的一个方面,它允许以特别简单且占用空间小的微处理器结构获得对指令的极快处理。此外,该特征尤其适用于在芯片卡中装载程序,该程序包括在将结果装载到存储器中前的重复操作顺序。
在这些重复操作中,尤其是位的链接操作,它在执行密码算法时适用,以便产生芯片卡的认证码。现在将描述该操作。
专用于位链接操作的指令的执行
有利地,该微处理器也可安排用于执行例如根据下列格式的链接操作指令BMV:
CODEBMV ADRd ADRs ADbi
该指令包括4位的链接操作码CODEBMV,4位的链接结果终点寄存器Rd的地址ADRd,4位的源寄存器Rs的地址,及源寄存器Rs的位bi的序号Adbi。
该指令意味着在这里是非限制性的:
1)将一个保持在寄存器Rs中的二进位字W1的位bi与保持在寄存器Rd中的二进位字W2的最高位相链接(“粘接”),
2)将链接的结果字W3记录到寄存器Rd中。
它被分成前述类型的读1.1、解码1.2,执行1.3及记录1.4四个步骤来执行,即两个时钟周期H1及一个流水线周期。在解码步骤1.2期间,解码器DEC1将地址ADRs,ADRd发送给组SBANK,将位地址Adbi发送给多路复用器MUX3,将码CODEBMV发送给DEC2,及将控制信号SEL2,SEL4发送给多路复用器MUX2,MUX4。在执行步骤1.3(寄存器B3启动)期间,组SBANK的输出端OUTRs被连接到多路复用器MUX3的输入端,后者的输出端OUTRs被连接到电路BSHIFT的输入端e16。保持在寄存器Rs中的二进位字W1施加到多路复用器MUX3的输入端及保持在寄存器Rd中的二进位字W2施加到单元ALU的输入端IN1。这里,单元ALU是穿透的并将字W2复制到其输出端OUT。多路复用器MUX3将字W1的位b12输出到辅助输入端e16。电路BSHIFT执行向右移位并输出以下类型的二进位字W3:
W3=b12d15d14d13d12d11d10d9d8d7d6d5d4d3d2d1
其中的最高位是从字W1中选择出的位b12。字W3的其它位是字W2的位d15至d1,最低位d0通过移位已从结果中消除(该位d0则作为特征位C输出到电路BSHIFT的输出端OUTF)。该字W3至最后步骤1.4中被记录到寄存器Rd。
为了对该指令的优点有清楚的概念,下列表2中描述了链接的程序:“在R0=1010 1010 1010 1010(初始状态)中链接
R1=0001 0010 0011 0100的第12位,然后链接
R2=0010 0011 0100 0101的第0位,然后链接
R3=0011 0100 0101 0110的第14位,然后链接
R1=0001 0010 0011 0100的第2位”。
Figure 9881288800151
在寄存器R0中链接的位为黑体字。斜体字为通过向右移位丢失的最低位。总地,4位链接仅需要4个流水线时钟周期及仅一个4指令的程序。
本领域的技术人员将清楚地看到,根据本发明的微处理器可以有多种实施变型及改善,
作为例子,在图2上表示出一根将解码器DEC2连接到多路复用器MUX2的第4输入端的导线20。该连接允许解码器DEC2将称为“中间数据”的8位数据注入到扇区ST21的输入端,该数据由从存储器MEM读到的指令中提取。
作为另一变形例,在图2上用虚线表示了一个多路复用器MUX5,它插在单元ALU的输出端OUT及电路BSHIFT的输入端之间。该多路复用器MUX5具有一个连接到存储器MEM的输出端OUTm的输入端,它允许将存储在存储器中的数据直接注入到电路BSHIFT中。
此外,显然,电路BSHIFT可被设计成既能向右移位也能向左移位。
并且,图2中所示的寄存器B1至B4的布置不是强制的,根据本发明的流水线式的工作可用不同方式实现。例如,如果解码器DEC1本身使数据(ADRs,ADRd,Adbi,CODEop)的转移与扇区ST21的控制信号(SEL2,SEL4)同步,则可去消寄存器B3。在此情况下,寄存器B3暗含在解码器DEC1中。而且,寄存器B1实际上可集成在单元MMU及电路IPC中。
此外,显然地,微处理器的某些单元是可随意选择的。例如,选择接收16位地址的小存储器或工作于32位的微处理器将使MMU成为无用。
最后,本领域的技术人员显然清楚,“时钟半周期”一词不应限制性地解释。实际上,以恒定速度工作,可等同地设置一个具有双倍速度的时钟信号及仅在两个时钟周期的一个上启动流水线的各个扇区,并使每个扇区的启动相对下个扇区偏移一个时钟周期。对于每个流水线寄存器B1至B4,在两个时钟中选择一个位作为控制信号可用简单方式借助分频电路来实现,例如用一个D触发器,它的/Q输出端连接到D输入端。此外各流水线寄存器的控制信号在施加前可在异或门中组合,以保证同一流水线级的两个互补扇区不会同时被触发。
总地,为了说明及理解本发明的基本方面,以上我们描述了一个仅包括必要单元的简化的微处理器。本领域的技术人员完全可以作到,对本发明的微处理器附加其它各种单元,尤其是在微处理器工作中传统使用的单元,如中断信号发生及处理电路,时钟电路,母线控制电路,输入/输出电路…。

Claims (10)

1.流水线型微处理器(MP),它包括:第一流水线级(ST1),其具有使记录在存储器(MEM)中的程序指令(CODEop,ADRs,ADRd)读出及解码的装置(IPC,MMU,PC,B2,DEC1),其特征在于:它包括与第一流水线级相邻接的第二流水线级(ST2),其包括在微处理器时钟信号(H1)互补半周期中彼此先后启动的两个扇区(ST21,ST22),第一扇区(ST21)包括读取被保存在微处理器寄存器组(BANK1,BANK2)的两个寄存器(Rd,Rs)中的数据及根据在上一时钟周期上由第一流水线级(ST1)接收的指令(CODEop,ADRs,ADRd)对所述数据执行运算的装置(DEC2,ALU,BSHIFT,MUX2,MUX3,MUX4),第二扇区(ST22)包括用于将运算结果记录到所述寄存器组(BANK1,BANK2)的一个寄存器中的装置(B4,DEC1)。
2.根据权利要求1的微处理器,其中第一流水线级(ST1)包括在时钟信号(H1)互补半周期中启动的两个扇区(ST11,ST12),第一流水线级的第一扇区(ST11)包括读存储器中指令的装置(IPC,MMU,PC,B2),第一流水线级的第二扇区(ST12)包括指令的解码装置(DEC1)。
3.根据权利要求1的微处理器,其中第二流水线级(ST2)的第一扇区(ST21)包括一个算术及逻辑单元(ALU)及一个移位电路(BSHIFT)。
4.根据以上权利要求中一项的微处理器,其中第二流水线级(ST2)的第一扇区(ST21)包括用于在一个时钟半周期中执行将第一个二进位字(W1)的一个位(bi)与第二个二进位字(W2)的位相链接的装置(BSHIFT,MUX2,MUX3,MUX4)。
5.根据以上权利要求中一项的微处理器,其中读及解码的装置(DEC1)被设置来解码紧致指令,该紧致指令包括指令码(CODEop),寄存器组的第一寄存器(RS)的地址(ADRs)及第二寄存器(Rd)的地址(ADRd)。
6.流水线微处理器(MP),它包括一个读装置(IPC,MMU,PC,B2,DEC1)及对记录在存储器(MEM)中的程序指令解码的装置(DEC1),寄存器组(SBANK,HBANK)及计算和处理数据的装置(DEC2,ALU,BSHIFT,MUX2,MUX3,MUX4),其特征在于:
-读装置(IPC,MMU,PC,B2,DEC1)及解码装置(DEC1)被设置在第一流水线级(ST1),
-计算及处理装置(DEC2,ALU,BSHIFT,MUX2,MUX3,MUX4)被设置在与第一流水线级相邻接的第二流水线级(ST2)的第一扇区(ST21)中,所述第一扇区(ST21)在微处理器时钟信号(H1)的第一半周期中被启动,
-寄存器组(SBANK,HBANK)用读模式(RDH1)设置在第二流水线级(ST2)的第一扇区(ST21)中,及
-寄存器组(SBANK,HBANK)用写模式设置在第二流水线级(ST2)的第二扇区(ST22)中所述第二扇区(ST22)在时钟(H1)的第二半周期中被启动。
7.根据权利要求6的微处理器,其中存储器(MEM)用写模式(WRH2,INm)设置在第二流水线级(ST2)的第二扇区(ST22)中。
8.根据权利要求7的微处理器,其中计算和处理装置包括用于在一个时钟半周期中执行将第一个二进位字(W1)的一个位(bi)与第二个二进位字(W2)的位链接操作(BMV,CODEBMV)的装置(BSHIFT,MUX2,MUX3,MUX4)。
9.由微处理器(MP)处理存储器(MEM)中指令(CODEop,ADRd,ADRs)读出的方法,该微处理器包括一个寄存器组(SBANK,HBANK),指令解码装置(IPC,MMU,PC,B2,DEC1)及指令执行装置(DEC2,ALU,BSHIFT,MUX2,MUX3,MUX4),其特征在于,该方法包括:
-提取第一地址(ADRs),第二地址(ADRd)、及包含在指令中的操作码(CODEop),具有微处理器一个时钟周期的最大持续时间(H1)的第一步骤(1.2);
-同时读(RDH1)由从第一步骤期间的指令中提取的地址所识别的寄存器组第一寄存器(Rs)及第二寄存器(Rd),并根据寄存器的内容在一个时钟半周期持续时间上执行由指令操作码(CODEop)识别的算术或逻辑运算(OP,BMV,ADD,OR)的第二步骤(1.3);及
-在一个时钟(H1)的半周期持续时间上将运算结果记录到寄存器组(SBANK,HBANK)的一个寄存器(Rd)中的第三步骤(1.4)。
10.根据权利要求9的方法,其中该结果寄存在所述第一及第二寄存器的一个中。
CNB988128888A 1997-11-03 1998-10-23 微处理器,尤其用于芯片卡的微处理器 Expired - Lifetime CN1165839C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9713759A FR2770660B1 (fr) 1997-11-03 1997-11-03 Microprocesseur, notamment pour carte a puce
FR97/13759 1997-11-03

Publications (2)

Publication Number Publication Date
CN1285934A true CN1285934A (zh) 2001-02-28
CN1165839C CN1165839C (zh) 2004-09-08

Family

ID=9512940

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB988128888A Expired - Lifetime CN1165839C (zh) 1997-11-03 1998-10-23 微处理器,尤其用于芯片卡的微处理器

Country Status (7)

Country Link
US (1) US6779105B1 (zh)
EP (1) EP1027644B1 (zh)
CN (1) CN1165839C (zh)
AU (1) AU1550899A (zh)
DE (1) DE69801840T2 (zh)
FR (1) FR2770660B1 (zh)
WO (1) WO1999023552A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1329820C (zh) * 2001-08-01 2007-08-01 皇家飞利浦电子股份有限公司 一种带有编程延缓周期的延迟设备的处理器
CN101299185B (zh) * 2003-08-18 2010-10-06 上海海尔集成电路有限公司 一种基于cisc结构的微处理器结构
CN101178644B (zh) * 2006-11-10 2012-01-25 上海海尔集成电路有限公司 一种基于复杂指令集计算机结构的微处理器架构

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101256217B (zh) * 2008-04-17 2011-11-02 复旦大学 一种高监控覆盖率片上系统调试平台
CN102591760A (zh) * 2011-09-07 2012-07-18 上海大学 基于长短扫描链与jtag接口的片上调试电路
US10534606B2 (en) * 2011-12-08 2020-01-14 Oracle International Corporation Run-length encoding decompression
US11113054B2 (en) 2013-09-10 2021-09-07 Oracle International Corporation Efficient hardware instructions for single instruction multiple data processors: fast fixed-length value compression
US9606921B2 (en) 2013-09-21 2017-03-28 Oracle International Corporation Granular creation and refresh of columnar data
US10025822B2 (en) 2015-05-29 2018-07-17 Oracle International Corporation Optimizing execution plans for in-memory-aware joins
US10067954B2 (en) 2015-07-22 2018-09-04 Oracle International Corporation Use of dynamic dictionary encoding with an associated hash table to support many-to-many joins and aggregations
US10402425B2 (en) 2016-03-18 2019-09-03 Oracle International Corporation Tuple encoding aware direct memory access engine for scratchpad enabled multi-core processors
US10061714B2 (en) 2016-03-18 2018-08-28 Oracle International Corporation Tuple encoding aware direct memory access engine for scratchpad enabled multicore processors
US10061832B2 (en) 2016-11-28 2018-08-28 Oracle International Corporation Database tuple-encoding-aware data partitioning in a direct memory access engine
US10599488B2 (en) 2016-06-29 2020-03-24 Oracle International Corporation Multi-purpose events for notification and sequence control in multi-core processor systems
US10380058B2 (en) 2016-09-06 2019-08-13 Oracle International Corporation Processor core to coprocessor interface with FIFO semantics
US10783102B2 (en) 2016-10-11 2020-09-22 Oracle International Corporation Dynamically configurable high performance database-aware hash engine
US10176114B2 (en) 2016-11-28 2019-01-08 Oracle International Corporation Row identification number generation in database direct memory access engine
US10459859B2 (en) 2016-11-28 2019-10-29 Oracle International Corporation Multicast copy ring for database direct memory access filtering engine
US10725947B2 (en) 2016-11-29 2020-07-28 Oracle International Corporation Bit vector gather row count calculation and handling in direct memory access engine

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4399507A (en) * 1981-06-30 1983-08-16 Ibm Corporation Instruction address stack in the data memory of an instruction-pipelined processor
EP0150177A1 (en) * 1983-07-11 1985-08-07 Prime Computer, Inc. Data processing system
BR8407165A (pt) * 1983-11-11 1985-10-08 Fujitsu Ltd Sistema de controle de canalizacao
US4943915A (en) * 1987-09-29 1990-07-24 Digital Equipment Corporation Apparatus and method for synchronization of a coprocessor unit in a pipelined central processing unit
IL92605A0 (en) * 1988-12-19 1990-08-31 Bull Hn Information Syst Production line method and apparatus for high performance instruction execution
JPH03211613A (ja) * 1990-01-17 1991-09-17 Toshiba Corp ディジタル信号処理装置
US6108773A (en) * 1998-03-31 2000-08-22 Ip-First, Llc Apparatus and method for branch target address calculation during instruction decode

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1329820C (zh) * 2001-08-01 2007-08-01 皇家飞利浦电子股份有限公司 一种带有编程延缓周期的延迟设备的处理器
CN101299185B (zh) * 2003-08-18 2010-10-06 上海海尔集成电路有限公司 一种基于cisc结构的微处理器结构
CN101178644B (zh) * 2006-11-10 2012-01-25 上海海尔集成电路有限公司 一种基于复杂指令集计算机结构的微处理器架构

Also Published As

Publication number Publication date
DE69801840D1 (de) 2001-10-31
AU1550899A (en) 1999-05-24
CN1165839C (zh) 2004-09-08
EP1027644A1 (fr) 2000-08-16
FR2770660A1 (fr) 1999-05-07
EP1027644B1 (fr) 2001-09-26
FR2770660B1 (fr) 2000-08-25
US6779105B1 (en) 2004-08-17
WO1999023552A1 (fr) 1999-05-14
DE69801840T2 (de) 2002-04-04

Similar Documents

Publication Publication Date Title
CN1165839C (zh) 微处理器,尤其用于芯片卡的微处理器
US5459843A (en) RISC-type pipeline processor having N slower execution units operating in parallel interleaved and phase offset manner with a faster fetch unit and a faster decoder
CN100342325C (zh) 减少多线程处理器中寄存器文件端口的方法和装置
EP2438529B1 (en) Conditional operation in an internal processor of a memory device
EP0994413A2 (en) Data processing system with conditional execution of extended compound instructions
US20020116596A1 (en) Digital signal processor with parallel architecture
TW200901082A (en) Computer memory addressing mode employing memory segmenting and masking
GB2496934A (en) Multi-stage register renaming using dependency removal and renaming maps.
US7197590B2 (en) Method and apparatus for connecting LPC bus and serial flash memory
KR19980018874A (ko) 파이프라인 방식 프로세서 (processor with pipelining-structure)
US4794518A (en) Pipeline control system for an execution section of a pipeline computer with multiple selectable control registers in an address control stage
JP2960533B2 (ja) 記号列検索モジュール及びそれを備えたシングルチップマイクロコンピュータ
JP2004510213A (ja) パイプライン・アーキテクチャ準拠マイクロコントローラのための機密保護対策方法
US5390306A (en) Pipeline processing system and microprocessor using the system
US6658561B1 (en) Hardware device for executing programmable instructions based upon micro-instructions
CN102289363B (zh) 控制数据流的方法以及计算机系统
EP0012242B1 (en) Digital data processor for word and character oriented processing
US20070245120A1 (en) Multiple microcontroller system, instruction, and instruction execution method for the same
WO1991009367A1 (en) Improvements in computer systems
US20040128479A1 (en) Method and apparatus for variable length instruction parallel decoding
US8898433B2 (en) Efficient extraction of execution sets from fetch sets
CN1238788C (zh) 可处理变长数据的先进先出寄存器队列装置及控制方法
CN1609782A (zh) 不确定长度的讯息的调整方法与装置
CN1529280A (zh) 一种优化存储器逻辑分区结构的非cpu集成电路卡
CN100359506C (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
CX01 Expiry of patent term

Granted publication date: 20040908

CX01 Expiry of patent term