CN104615408B - 微处理器、集成电路与提供微码指令储存空间的方法 - Google Patents

微处理器、集成电路与提供微码指令储存空间的方法 Download PDF

Info

Publication number
CN104615408B
CN104615408B CN201410212536.XA CN201410212536A CN104615408B CN 104615408 B CN104615408 B CN 104615408B CN 201410212536 A CN201410212536 A CN 201410212536A CN 104615408 B CN104615408 B CN 104615408B
Authority
CN
China
Prior art keywords
memory body
process cores
micro
core
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.)
Active
Application number
CN201410212536.XA
Other languages
English (en)
Other versions
CN104615408A (zh
Inventor
G·葛兰·亨利
泰瑞·派克斯
罗德尼·E·虎克
约翰·D·布恩达
布兰特·比恩
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.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN104615408A publication Critical patent/CN104615408A/zh
Application granted granted Critical
Publication of CN104615408B publication Critical patent/CN104615408B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code

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)

Abstract

本发明公开了一种微处理器、集成电路与提供微码指令储存空间的方法,该微处理器包含多个处理核,每一处理核包含对应的核内记忆体,其实体位于该处理核内且仅可被该处理核读取。微处理器亦包含核外记忆体,其实体位于所有处理核外且可被所有处理核读取。对每一处理核,核外记忆体与对应的核内记忆体共同提供对可被该处理核提取的多个微码指令而设的M字组的储存空间,其中核外记忆体提供J字组的储存空间,核内记忆体提供K字组的储存空间,J、K与M为正整数且M=J+K。前述诸记忆体为非架构上可见,且以非架构的程序计数器所提供的提取地址存取。前述微码指令是实作微处理器的架构指令的非架构指令。

Description

微处理器、集成电路与提供微码指令储存空间的方法
技术领域
本发明关于多核微处理器设计,特别关于核外的微码只读记忆体。
背景技术
集成电路上的晶粒(die)空间弥足珍贵。这主要有两个原因。第一,晶粒愈大则合格率愈低、成本愈高。第二,因为实际的最大晶粒尺寸受制于经济上可接受的合格率,功能的多寡(约当为效能的衡量)亦受限于可被放在晶粒上的电路数量。对如微处理器的高度复杂集成电路尤莫如是。
微处理器设计趋于多核,亦即每一微处理器在单一集成电路上具有多颗处理核(processing core)。一般而言,这些处理核是在晶粒上重复出现、本质相同的设计,但它们也可共享不属任何一核的资源。一个常见的共享资源的例子是二级快取(level-2cache)。处理核设计中各电路常被复制多次,四次以上并非罕见,为在集成电路上多次复制同样的处理核,每个核需愈小愈好。
发明内容
在一面向上,本发明提供一种微处理器。微处理器包含多个处理核。每一处理核包含对应的核内记忆体,核内记忆体(core memory)实体位于该处理核内且可被该处理核读取但不可被其他的处理核读取。微处理器亦包含核外记忆体(uncore memory),其实体位于所有处理核外且可被所有处理核读取。对每一处理核,核外记忆体与对应的核内记忆体共同提供对可被该处理核提取的多个微码指令而设的M字组的储存空间,其中核外记忆体提供M字组中J字组的储存空间,核内记忆体提供M字组中K字组的储存空间,J、K与M为正整数且M=J+K。
在另一面向上,本发明提供一种提供微码指令储存空间的方法,用于一个微处理器的多个处理核中。所述方法包含对每一处理核提供对可被该处理核提取的多个微码指令而设的M字组的储存空间。所提供的M字组储存空间包含对每一处理核而言,自核外记忆体提供M字组中J字组的储存空间,以及对应的核内记忆体所提供的M字组中K字组的储存空间。核外记忆体实体位于所有处理核外且可被所有处理核读取;每一处理核的核内记忆体实体位于该处理核内且仅可被该处理核读取。J、K与M为正整数且M=J+K。
在又一面向上,本发明提供一种集成电路。集成电路包含多个处理核,每一处理核包含自有的非共享记忆体,其实体位于该处理核内且用以储存微码指令的第一部分。集成电路亦包含共享记忆体,其实体位于彼等处理核外且用以储存微码指令的第二部分。每一处理核用以从自有的非共享记忆体提取第一部分,并自共享记忆体提取第二部分。
在又一面向上,本发明提供一种计算机程序产品,编码于至少一个非暂态的计算机可用媒介中以与计算装置合用。计算机程序产品包含计算机可用程序码,其体现于前述计算机可用媒介中,用以阐明一种微处理器。计算机可用程序码包含第一程序码,其用以阐明多个处理核,每一处理核包含对应的核内记忆体,其实体位于该处理核内且可被该处理核读取但不可被其他的处理核读取。计算机可用程序码亦包含第二程序码,其用以阐明一个核外记忆体,其实体位于所有处理核外且可被所有处理核读取。对每一处理核,核外记忆体与对应的核内记忆体共同提供对可被该处理核提取的多个微码指令而设的M字组的储存空间,其中核外记忆体提供M字组中J字组的储存空间,核内记忆体提供M字组中K字组的储存空间,J、K与M为正整数且M=J+K。
附图说明
图1为一多核微处理器的方块图。
图2为一方块图,描绘图1中一处理核的细部。
图3为一方块图,描绘图1各处理核的微码定址空间的实例。
图4为将微码指令置于图1中核内与核外只读记忆体的流程图。
图5为一流程图,描绘图1与图2中微处理器的运作。
图6为一方块图,描绘图1中处理核的另一实施例。
其中,附图标记:
100 微处理器 102处理核
104 核内只读记忆体
106 仲裁逻辑
108 核外只读记忆体
112 排线
202 指令快取
204 简单指令转译器
206 暂存器别名表
208 保留站
212 执行单元
214 引退单元
216 提取单元
218 架构程序计数器
222 多工器
224 目标地址
226 微指令
232 微程序计数器
235 指令间接暂存器
236 微序列器
237 微转译器
242 架构指令
244、246 微指令
245、248 选择输入
247、249、251 微码指令
252 微码地址
254 微码提取地址
255 ISA指令资讯
262 记忆体子系统
264 暂存器
292 多工器
294 指令转译器
296 复杂指令转译器
300 微码定址空间
具体实施方式
“微码指令”为储存于微处理器的一或多个记忆体的非架构指令,由微处理器的一或多个处理核依据储存于一非架构的程序计数器的记忆体地址所提取,且被彼等处理核用来实作微处理器的指令集架构(instruction set architecture,简称ISA)中的指令。
一个“字组”为多个位元。
“指令转译器”包含多个晶体管的配置,用以接收ISA机器语言指令作为输入,并对应地将一或多道微指令输出至微处理器的诸执行单元执行。微指令的执行结果由ISA指令所定义,因此执行单元对微指令的集体执行“实作”了ISA指令;也就是说,执行单元对指令转译器所输出的实作微指令的集体执行,在ISA指令所指定的输入上进行ISA指令所指定的操作,以产生ISA指令所定义的结果。由是,指令转译器被称为将ISA指令“转译”为一或多道实作微指令。
“微指令集”为微处理器的诸执行单元可执行的(微)指令的集合。
“指令集”定义一些二进制编码值(即机器语言指令)的集合与微处理器所进行的操作间的对应关系。机器语言指令指示微处理器进行的操作如:将暂存器1内的运算元与暂存器2内的运算元相加并将结果写入暂存器3、将记忆体地址0x12345678的运算元减掉指令所指定的立即(immediate)运算元并将结果写入暂存器5、依据暂存器7所指定的位元数使暂存器6内的数值移位、若零旗标被设置时则分支至本指令后36个位元组的指令、将数值自记忆体地址0xABCD0000载入暂存器8。因此,指令集定义各机器语言指令必须具有、以使微处理器进行所欲进行操作的二进制编码值。应注意的是,指令集虽定义了二进制值与微处理器操作间的对应关系,这并不意味着单一个二进制值就会对应到单一个微处理器操作。具体而言,在某些指令集中,多个二进制值可能会对应到同一个微处理器操作。
在一个微处理器家族的脉络中,“指令集架构”包含:(1)指令集;(2)指令集的指令可存取的资源的集合,资源如用来为记忆体定址的暂存器和模式;以及(3)微处理器处理指令集的指令时产生的例外的集合,如除以零、分页错误、违反了对记忆体的保护等。由于编程人员(如组译器“assembler”、编译器“compiler”的撰写者)想做出在此微处理器家族运行的机器语言程序时需要其ISA定义,因此微处理器家族的制造商通常会将ISA定义于一本编程人员手册之中。举例来说,西元2009年3月出版的Intel64与IA-32架构软件开发者手册(Intel64and IA-32Architectures Software Developer’s Manual)即定义了Intel64与IA-32处理器架构的ISA。该软件开发者手册在此列为参考文件,其由五卷组成,第1卷描述基本架构;第2A卷是A至M的指令集参考;第2B卷是N至Z的指令集参考;第3A卷是系统编程指南;第3B卷是系统编程指南的第二部分。此处理器架构常被称为x86架构,本文中则以x86、x86ISA、x86ISA家族、x86家族或类似用语指称。在另一例中,西元2010年出版的ARM架构参考手册ARM v7-A与v7-R版附勘误标记(ARM Architecture Reference Manual,ARM v7-Aand v7-R Edition Errata Markup)定义了ARM处理器架构的ISA,该参考手册在此列为参考文件。此处理器架构在本文中以ARM、ARM ISA、ARM ISA家族、ARM家族或类似用语指称。其他众所周知的ISA家族还有IBM System/360/370/390与z/Architecture、DEC VAX、DECAlpha、Motorola68k、MIPS、SPARC、PowerPC等等。ISA的定义会涵盖处理器家族,因为在ISA处理器家族的发展过程中制造商会透过如在指令集中增加新指令、在架构暂存器组中增加新的暂存器等方式来改进家族中首款处理器的ISA。举例来说,随着x86ISA的进化,其于Intel Pentium III处理器家族中导入一组128位元的XMM暂存器作为串流式单指令多数据扩充指令集(Streaming SIMD Extensions,简称SSE,其中SIMD是single instruction,multiple data)的一部分,并且已有利用XMM暂存器增加效能的x86ISA机器语言程序被开发出来,虽然现有的处理器已不再使用XMM暂存器。此外,亦有制造商设计且制造出可运行x86ISA机器语言程序的微处理器,像AMD(Advanced Micro Devices,Inc.,中名超微)与威盛电子就增加了新技术特征,如AMD的3DNOW!单指令多数据向量处理指令以及威盛PadLock安全引擎的乱数产生器和先进密码引擎;这些技术都为某些x86ISA机器语言程序所用,但不被现有的Intel微处理器实作。又举例来说,ARM ISA原本定义ARM指令集状态具有四位元组长的指令,但渐渐加入了其他指令集状态,如具有两位元组指令以提升编码密度的Thumb指令集状态以及用以加速Java位元组码(bytecode)程序的Jazelle指令集状态;这些新增的指令集状态中部分或全部已为某些开发出来的ARM ISA机器语言程序所用,虽然目前的ARM ISA机器语言程序已不再使用这些指令集状态。
请参见图1,其为多核微处理器100的方块图。在一实施例中,微处理器100实体存在于单一集成电路上。微处理器100包含多个处理核102、被彼等处理核102共享的核外只读记忆体108(下称核外记忆体)以及将处理核102耦接至核外记忆体108的仲裁逻辑106(又称控制逻辑)。每一处理核102包含一个对应的核内只读记忆体104(下称核内记忆体),其为该处理核102私有的在地元件,且不与其他处理核102共享。每一处理核102以一条对应的排线112耦接至仲裁逻辑106。
微处理器100包含一个被称为“核外”的部分。核外是微处理器100中不属任何处理核102的部分。核外记忆体108存在于微处理器100的核外。在一实施例中,诸处理核102单一设计且被重复多次。图1的例描绘了四个处理核102,在其他实施例中处理核102的数量可以不同。仲裁逻辑106亦存在于微处理器100的核外,用以在诸处理核102请求存取核外记忆体108时进行仲裁。
如图1所示,核外记忆体108提供一定量J字组的储存空间,其用以储存所有处理核102皆可提取的微码指令。每一核内记忆体104则如图1所示提供一定量K字组的储存空间,其用以储存只有对应的处理核102才能提取的微码指令。核外记忆体108的J字组和对应的核内记忆体104的K字组存在于处理核102微码记忆体定址空间的相异地址,详如后述。由是,对每一处理核102,其对应核内记忆体104和核外记忆体108共同提供J+K字组的对可被该处理核102提取的微码指令而设的储存空间,如后图3所详述。
在一实施例中,核外记忆体108有J个可定址的记忆体位置,每一者与一道微码指令同宽。在一实施例中,每一核内记忆体104有K个可定址的记忆体位置,每一者与一道微码指令同宽。在一实施例中,微码指令宽38位元。在另一实施例中,存于诸核内记忆体104和核外记忆体108的微码指令以一压缩演算法被压缩,该演算法专为微码指令集中的微码指令的特有编码而设计。在此类实施例中,图2中的指令转译器294包含解压缩逻辑(未绘示),其用以还原被压缩的微码指令字组。在一实施例中,被压缩的微码指令字组长28位元。
在一实施例中,核外记忆体108包含所有处理核102共享的单一读取端口,而仲裁逻辑106则依据一仲裁演算法来准驳诸处理核102对该读取端口的使用。在一实施例中,若在某要求周期中只有一个处理核102要求存取核外记忆体108,则仲裁逻辑106准许其要求;若在某要求周期中多个处理核102要求存取核外记忆体108,则仲裁逻辑106轮流给予存取权。其他的仲裁演算法亦可应用在本发明实施例中。在其他实施例中,核外记忆体108包含诸处理核102所共享的多个读取端口。在其他实施例中,对每一处理核102核外记忆体108都包含一个读取端口。需注意的是,核外记忆体108所包含的读取端口愈多则其尺寸愈大,缩减晶粒面积的效益也愈不彰。
核外记忆体108的存在带来的一项好处是以自核外记忆体108存取微码指令时延迟的增加换得潜在的集成电路100面积的减少。延迟的增加可归因于核外记忆体108和各处理核102的微码单元相距较远;也就是说,传播延迟可能随多出来的距离而增加,因此需要额外的管线铺设和关联时脉周期。再者,延迟的增加可归因于作为共享资源的核外记忆体108必须经过仲裁方能被提出要求的处理核102存取。此外,核外记忆体108的共享性也会带来变动的存取延迟,不像核内记忆体104具有固定延迟。尽管如此,在某些情形下缩减晶粒面积可能比避免延迟增加或变异更值得。
请参见图2,其为图1中一个处理核102的细部方块图。本处理核102包含一条多阶管线,其又包含多个功能单元。在一实施例中,处理核102是超纯量、非循序执行、管线化的数据处理核。处理核102包含指令提取单元216(下称提取单元),其耦接至指令快取202、指令快取202耦接至指令转译器294、指令转译器294耦接至暂存器别名表206、暂存器别名表206耦接至保留站208、耦接至多个执行单元212耦接至引退单元214。执行单元212自(架构的与非架构的)多个暂存器264和记忆体子系统262接收运算元,引退单元214将微指令结果引退至暂存器264和记忆体子系统262。指令转译器294经由图1中的排线112耦接至仲裁逻辑106。提取单元216包含处理核102的架构程序计数器218,而引退单元214在引退指令时更新架构程序计数器218。提取单元216提供一架构指令提取地址至指令快取202,提取单元216可依据架构程序计数器218产生架构的提取地址。另外,执行单元212可执行分支指令并将分支目标地址提供给提取单元216,后者用以产生前述架构提取地址。最后,提取单元216的多个分支预测器(未绘示)可预测并提供用来产生架构提取地址的分支目标地址。如后所详述,架构程序计数器218和指令转译器294所维护的非架构微码程序计数器232(下称微程序计数器)是不同的,而提取单元216所产生给指令快取202的架构提取地址和指令转译器294的微序列器236(microsequencer,又称控制逻辑)所产生的非架构微码提取地址254也不同。
指令快取202储存微处理100的ISA(如x86、ARM、SPARC等)所定义的多道架构指令242(又称巨指令或ISA指令)。指令转译器294将巨指令242转译为处理核102的一个微架构的微指令集的微指令226。在一实施例中,微架构具有通常会和精简指令计算(RISC)相关。指令转译器294详如后述。
指令转译器294依程序顺序向暂存器别名表206提供微指令。暂存器别名表206依程序顺序在引退单元214的一个重排序缓冲器中为微指令配置条目。暂存器别名表206进行暂存器264的重命名(rename)。暂存器别名表206将微指令提供给保留站208,微指令再从保留站208配发给执行单元212,以在各微指令的来源运算元已可得且执行单元212可利用时以非循序方式执行之。引退单元214将执行单元212执行微指令的结果写入处理核102的架构状态,并依程序顺序引退指令。执行单元212可包含载入/储存单元、多个整数单元、多个浮点数单元、多个分支单元、多个单指令多数据单元等等。载入单元自一级数据快取读取数据;储存单元将数据写入一级数据快取。亦可有二级快取支援一级数据快取和指令快取202。
指令转译器294自图1的指令快取202接收包含巨指令242的区块,而这些巨指令242与架构指令242或ISA指令242相关。指令转译器294将这些ISA指令242转译成提供给暂存器别名表206的实作微指令226。指令转译器294包含简单指令转译器204(下称简单转译器)、复杂指令转译器296(又称微码单元或复杂转译器)以及多工器292。简单转译器204输出实作微指令244和微码地址252;复杂转译器296接收微码地址252并提供实作微指令246;多工器292在两输入端分别自简单转译器204和复杂转译器296接收微指令244与246,并依据一选择输入248将实作微指令226提供给管线下阶的执行单元212。
复杂转译器296包含微序列器236、图1中的核内记忆体104、图1中的核外记忆体108、指令间接暂存器235、多工器222以及微转译器237。微序列器236接收微码地址252并维护微程序计数器232。核内记忆体104接收依据微程序计数器232的微码提取地址254。核外记忆体108经由排线112接收微码提取地址254。多工器222在第一输入端自核内记忆体104接收微码指令251,在第二输入端自核外记忆体108(经由排线112)接收微码指令249,并依据微序列器236产生的一个选择输入245输出微码指令247。微转译器237转译自多工器222接收的微码指令247,以产生复杂转译器296输出的实作微指令246。简单转译器204和复杂转译器296分别产生的实作微指令244与246都是微处理器100的微架构的微指令集的微指令226,皆可被管线下阶的执行单元212所执行。
多工器292受控于选择输入248。一般来说,多工器292会选择来自简单转译器204的微指令244,但当简单转译器204遇到一个复杂的ISA指令242而转移控制权或遭遇陷阱中断而前往(trap to)复杂转译器296时,简单转译器204会控制选择输入248,使多工器292选择来自复杂转译器296的微指令246。当暂存器别名表206遇到设有特殊位元的微指令226且该位元指示这是复杂ISA指令242的实作序列中最后一道微指令,暂存器别名表206将控制选择输入248,使多工器292回复选择来自简单转译器204的微指令244。另外,当引退单元214准备引退一道微指令226且此微指令的状态显示有需要时(如该状态指示此微指令226已造成例外的情形),引退单元214亦控制选择输入248,使多工器292选择来自复杂转译器296的微指令246。
简单转译器204接收ISA指令242并将之解码,以判断这些ISA指令242是简单还是复杂。简单转译器204可以发出所有用以实作ISA指令242的实作微指令226;也就是说,复杂转译器296不为简单ISA指令242提供任何实作微指令226。相对地,一道复杂ISA指令242至少需要复杂转译器296提供一部分(如果不是全部)的实作微指令226。在一实施例中,简单转译器204为ISA指令242的一个子集合发出部分用以实作彼等ISA指令242的实作微指令244后,并将控制权转移给复杂转译器296,后者接着发出实作彼等ISA指令242的其余微指令246。多工器292被指示首先将来自简单转译器204的实作微指令244作为微指令226提供给执行单元212,随后将来自复杂转译器296的实作微指令246作为微指令226提供给执行单元212。简单转译器204知道指令转译器294为各复杂ISA指令242产生实作微指令226所使用的各个微码程序的起始微码地址;当简单转译器204解码一道复杂ISA指令242时,会将有关的微码程序地址提供给复杂转译器296的微程序计数器232。简单转译器204可发出用来实作相对大部分的ISA指令242所需的所有微指令244,特别是ISA机器语言程序会频繁进行的那些ISA指令242,而只有相对少部分的ISA指令242需要复杂转译器296提供实作微指令246。在一实施例中,简单转译器204是许多布林逻辑门形成的区块,其可以现有工具合成而得。
复杂转译器296输出一序列的实作微指令246给多工器292。微码只读记忆体104/108用以储存微码程序的微码指令251/249,并依据微程序计数器232所持有的微码提取地址254输出微码程序的微码指令251/249。一般而言,当简单转译器204解码一道复杂ISA指令242时,微程序计数器232自简单转译器204收到其初始值252。在其他情形下,如重启动(reset)或发生例外时,微程序计数器232会分别收到重启动或适宜的例外处理微码程序的地址。一般而言,微序列器236按微码指令247的长度使微程序计数器232递增,以依序扫过诸微码程序间;在一些实施例中,微码指令与只读记忆体104/108中一个字组等长,因此微程序计数器232每次加1。或者,微序列器236将微程序计数器232更新至微转译器237解码控制型微码指令247(如分支指令)时所产生的目标地址224、或更新至执行单元212执行控制型微码指令226时所产生的目标地址,以分支至微码只读记忆体104/108中的非循序位置。微码只读记忆体104/108被制作在微处理器100的半导体晶粒内。
除了产生微指令244以实作一道简单ISA指令242或部分的一道复杂ISA指令242外,简单转译器204亦产生写入指令间接暂存器235的ISA指令资讯255。储存于指令间接暂存器235的ISA指令资讯255包含正被转译的ISA指令242的有关资讯,如辩识该ISA指令242的型态和所指定的来源与目的暂存器,ISA指令242的型态例如是ISA指令242操作的运算元是在记忆体中还是微处理器100的一个架构暂存器264中。这让诸微码程序得以一般化,亦即不需为不同的来源和/或目的架构暂存器264准备不同的微码程序。具体而言,简单转译器204知悉暂存器阵列264(register file),并藉由ISA指令资讯255将ISA指令242所提供的暂存器资讯转译为暂存器阵列264适宜的暂存器。ISA指令资讯255亦包含位移栏位、立即栏位、常数栏位、对来源运算元与对微指令226本身的重命名资讯、ISA指令242的实作微指令226序列中首/末微指令226的指示资讯、以及简单转译器204解码ISA指令242时所采集到的其他有用资讯。
微转译器237接收指令间接暂存器235的内容,亦从多工器222接收微码指令247,并相应地产生实作微指令246。取决于自指令间接暂存器235接收的资讯,如取决于ISA指令242的型态和所指定的来源与目的暂存器组合,微转译器237将特定微码指令247转译为不同序列的微指令246。在某些情形下,ISA指令资讯255的大部分会和微码指令247合并成实作微指令246。在一实施例中,每道微码指令247大约是40位元宽,而每道微指令246的宽度约为200位元。在一实施例中,微转译器237可从一道微码指令247产生出至多三道微指令246。微转译器237包含产生实作微指令246的布林逻辑门。
微转译器237带来的一项好处是微码只读记忆体104/108的尺寸可以缩减,因为ISA指令资讯255由简单转译器204产生、指令间接暂存器235提供,不需要储存于微码只读记忆体104/108。再者,因为不需为不同的ISA指令型态和不同的来源和/或目的架构暂存器264组合分别准备程序,微码程序可包含较少的条件式分支指令。举例来说,若复杂ISA指令242是记忆体型,简单转译器204可产生微指令244的前置部分以将来源运算元自记忆体载入某临时暂存器264,而微转译器237可产生微指令246以将结果从临时暂存器264存入记忆体;又若复杂ISA指令242是暂存器型,前述前置部分可将来源运算元自ISA指令242所指定的来源暂存器移至临时暂存器264,而微转译器237可产生微指令246以将结果从一临时暂存器移至指令间接暂存器235所指定的架构目的暂存器264。在一实施例中,微转译器237在许多方面类似于西元2010年4月23日提出的美国专利申请12/766,244所描述的微转译器,该专利申请在此列为参考文件,其主张于西元2009年8月14日提出的美国临时申请61/234,008的优先权,并以公开号2011/0040953于西元2011年2月17日公开。
在另一实施例中,如后图6所示,指令转译器294不包含微转译器237,而从微码只读记忆体104/108提取的微码指令251/249是可被执行单元212执行的微指令。
需注意的是,架构程序计数器218和微程序计数器232不同;也就是说,微程序计数器232并不持有ISA指令242的地址,其所持有的地址不在系统记忆体定址空间内。
如上所述,微码指令247是储存于微处理器100的一或多个记忆体104/108的非架构指令,其被处理核102依据储存于非架构微程序计数器232的提取地址254所提取,且被处理核102用来实作微处理器的ISA的指令242。微码指令247被微转译器237转译成执行单元212所执行的微指令246,或在另一实施例中,执行单元212直接执行微码指令247(此时它们即微指令246)。做为非架构指令,微码指令247并非微处理器100的ISA的指令,而是依据和架构指令集迥异的一套指令集编码而成。非架构的微程序计数器232没有定义在微处理器100的ISA中,且不同于架构上定义的程序计数器218。如下所述,微码用于实作微处理器ISA中部份或全部的指令。当解码一道以微码来实作的ISA指令242时,微处理器100(确切来说是简单转译器294)将控制权转移给关联于该ISA指令242的微码程序,其包含多个微码指令。执行单元212执行微码指令247,或依据图2的实施例,微码指令247被转译为执行单元212所执行的微指令246。执行单元212对微码指令247(或自其所转译出的微指令246)的执行结果是ISA指令242所定义的结果。由是,执行单元212对关联于ISA指令242的微码程序(或自微码指令247所转译出的微指令246)的集体执行“实作”ISA指令242;也就是说,执行单元212依据ISA指令242所指定的输入对微码实作指令247(或自微码指令247转译出的微指令246)的集体执行进行ISA指令242所指定的操作,以产生ISA指令242所定义的结果。此外,为了设定微处理器而重启动微处理器时,也可执行微码指令(或将其转译成微指令再执行)。
在一实施例中,图1中的仲裁逻辑106包含一个要求队列(未绘示),其用以持有接收自各处理核102对核外记忆体108的存取要求。在一实施例中,仲裁逻辑106和处理核102间的每一条排线112都包含要求部份和回应部份。在要求部份上,处理核102指定它所要求的微码指令的提取地址254;在回应部份上,仲裁逻辑106提供一个微码指令字组、地址、处理核号和有效性指标。只有有效性指标有指示时,微码指令字组、地址、处理核号才有效。处理核号代表仲裁逻辑106对某个之前对核外记忆体108的存取要求提供回应的处理核102。地址则是该微码指令字组从核外记忆体108中被提取的地址。在一实施例中,仲裁逻辑106可在排线112上设置(assert)一个禁制(stall)信号,告诉处理核102仲裁逻辑106无法再接收处理核102对核外记忆体108更多的存取要求。一旦仲裁逻辑106又可接收要求,便将禁制信号取消。在一实施例中,若暂存器别名表206设置禁制信号,告诉指令转译器294其不能再接收任何微指令226,则指令转译器294清空所有进行中的对核外记忆体108的存取。一旦暂存器别名表206取消禁制信号,微序列器236便再度开始于最后被送至暂存器别名表206的微指令226的地址上提取微码指令。在另一实施例中,指令转译器294会保存对核外记忆体108的进行中的存取状态,以避免重新提取这些存取进行中的微指令。
核外记忆体108的存取延迟大于各核内记忆体104。在一实施例中,核内记忆体104的存取延迟是3个周期;在一些实施例中,诸处理核102共享核外记忆体108的一或多个读取端口,而核外记忆体108的存取延迟不固定。
请参见图3,其描绘图1中各处理核102的微码定址空间300之一例。在此例中,核内记忆体104提供其对应的处理核102自地址0x0000至0x3FFF的一万六千字组(16K words)的储存空间,而核外记忆体108提供自地址0x4000至0x7FFF一万六千字组的储存空间。在此实施例中,微码提取地址254的高位元用来判断微码指令要从核内记忆体104(高位元为0)还是核外记忆体108(高位元为1)提取。在其他实施例中,如核内记忆体104和核外记忆体108的地址范围不相等时,微码提取地址254的其他多个位元也得被检验。由微码提取地址254所定址的是非架构定址空间,其与架构程序计数器218所定址的架构定址空间不同。在这种意义上,核内记忆体104和核外记忆体108是非架构上可见的记忆体。
请参见图4,其为将微码指令安置于核内记忆体104和核外记忆体108的流程图。流程始于步骤402。
于步骤402中,判断微码的哪些部分应储存在核内记忆体104、哪些部分应储存于核外记忆体108。在一实施例中,对效能要求较高的微码程序应储存在核内记忆体104,因之具有比核外记忆体108为短的存取延迟。诸处理核102对核外记忆体108的争夺也可纳入考量。举例而言,一般来说,较不常被呼叫的微码程序可以忍受核外记忆体108较久的存取时间,呼应统计上“较不常被呼叫”意味着两个以上的处理核102同时存取核外记忆体108的机率较低。在一实施例中,编程人员执行步骤402,但上述判断亦可自动化,如由效能分析(profiling)软件进行。流程续至步骤404。
于步骤404中,依据步骤402中的判断分发至核内记忆体104的部分微码被置入核内记忆体104,分发至核外记忆体108的部分微码则被置入核外记忆体108。在一实施例中,微码组译器支援可置于微码的组合语言码的指令(directive),组合语言码指示某条指令后的数行程序码应被放在核内记忆体104还是核外记忆体108中。在一实施例中,组译器会各为核内记忆体104与核外记忆体108维护一个位置计数器。流程终于步骤404。
请参见图5,其为图1与图2中微处理器100运作的流程图。流程始于步骤502。
于步骤502中,微序列器236产生一个微码提取地址254。微序列器236可在简单转译器204遭遇陷阱中断而前往微序列器236以提取陷阱地址252所指定的微码程序的第一道微码指令时、或者微序列器236正在提取前述程序接下来的微码指令,也就是某控制指令的循序指令或目标指令时产生微码提取地址254。流程续至步骤504。
于步骤504中,判断微码提取地址254是否指定核外记忆体108或与处理核102(产生该微码提取地址254)相关的核内记忆体104中的一个地址。在一实施例中,微序列器236执行步骤504。流程续至步骤506。
于步骤506中,若由步骤504的判断得知微码提取地址254指定了核外记忆体108中的地址,流程续至步骤512;否则知微码提取地址254指定了核内记忆体104中的地址,流程续至步骤522。
于步骤512中,向仲裁逻辑106提出于微码提取地址254的有关部份存取核外记忆体108的要求。以图3为例,微码提取地址254中非高位元的部分经由排线112的地址部份被提供给仲裁逻辑106,并在仲裁逻辑106允许提出要求的处理核102存取核外记忆体108时被转送至核外记忆体108。流程续至步骤514。
于步骤514中,因应步骤512中的要求,核外记忆体108提供所要求的微码指令249。如上所述,在一实施例中排线112包含有效性指标,其用以告知提出要求的处理核102何时可在排线112上取得有效的微码指令249。流程续至步骤516。
于步骤516中,微序列器236使多工器222选择将核外记忆体108所提供的微码指令249做为微指令247提供给微转译器237。如上所述,在一实施例中,微序列器236提供微码提取地址254的数个时脉周期后核外记忆体108方提供微码指令249,且此时脉周期数可变。因此,微序列器236用以控制多工器222,使之因应在排线112上所接收来自仲裁逻辑106的有效性指标而选择核外记忆体108所提供的微码指令249。流程续至步骤532。
于步骤522中,提出对核内记忆体104于微码提取地址254的有关部份的要求。以图3为例,微码提取地址254中非高位元的部分被提供给核内记忆体104。流程续至步骤524。
于步骤524中,因应步骤522中的要求,核内记忆体104提供所要求的微码指令251。在一实施例中,当有微码提取地址254时,核内记忆体104无论如何会被存取并输出微指令251。在另一可节能的实施例中,只有在微序列器236指示该要求是针对核内记忆体104时,核内记忆体104才被存取并输出微指令251。流程续至步骤526。
于步骤526中,微序列器236使多工器222选择将核内记忆体104所提供的微码指令251做为微指令247提供给微转译器237。在一实施例中,微序列器236交错地、管线化地产生对核外记忆体108(步骤512)和核内记忆体104(步骤522)的要求,且微序列器236维护着表示所要求的微码指令应依何顺序被提供的资讯。在一实施例中,微序列器236维护一位元阵列,其中的位元在核外记忆体108将提供微码指令249时具有第一二进制值,在核内记忆体104将提供微码指令251时具有第二二进制值。阵列中的位元排列是依据微码程序序列所指定要求应被满足的顺序。流程续至步骤532。
于步骤532中,如前所述,微转译器237将所选择的微码指令247转译为一或多道微指令246,并透过多工器292提供给暂存器别名表206。流程终于步骤532。
请参见图6,其为另一实施例中图1的一个处理核102的方块图。图6的处理核102在许多方面与图2者类似,标号相同的元素即相同,但图6不包含图2中的微转译器237或指令间接暂存器235,而核内记忆体104/核外记忆体108所提供的微码指令251/249不需转译即可供执行单元212执行的微指令247/246。
由前文可知,核内记忆体104与核外记忆体108在作动上不像快取记忆体阶层那样关联于某地址的数据可能同时存在于不同阶层的多个快取;也就是说,给定非架构微码定址空间中的一个提取地址,在该地址的微码指令字组仅存在于一处而非多处。具体而言,对应某提取地址的微码指令字组仅存在于核内记忆体104与核外记忆体108其中之一,而非同时存在于两者之中。再者,由前文亦可知,由处理核号和微码提取地址组成的有序对(ordered pair)可决定诸微码记忆体中何者才是所给定、需被提取的微码指令字组的唯一来源。具体而言,若提取地址指向核外记忆体108,则核外记忆体108即该来源;若提取地址指示核外记忆体108并非该来源,则产生该提取地址的处理核102所对应的核内记忆体104才是来源。
尽管上述诸实施例中储存微码的皆是只读记忆体,运用可写式微码记忆体的实施例亦被包含在本发明中。举例来说,核内记忆体104和/或核外记忆体108可包含快闪记忆体,微码单元自该快闪记忆体提取微码指令。此外,亦可经由包含一或多个可写式记忆体的修补硬体修补微码。
尽管本文描述了本发明诸实施例,请注意这些实施例仅以范例的方式呈现,而非用以限定本发明。对通晓计算机相关技术者而言,在不悖离本发明的精神下可对实施例做各种形式和细节上改变乃是显而易见。举例来说,可用软件实现本文所述的装置和方法的功能、制造、形塑、模拟、描述和/或测试。这可以藉泛用程序语言(如C、C++)、硬体描述语言(hardware description language,简称HDL,包含Verilog、VHDL等)或其他可用程序达成。此般软件可设于任何已知的计算机可用媒介之中,例如磁带、半导体、磁盘或光碟(如CD、DVD等)、网络或其他有线或无线的通讯媒介。本文所述的装置和方法的实施例可包含于半导体智慧财产核心(semiconductor intellectual property core)之中,如一微处理器核心(如以硬体描述语言体现或阐明者),并在生产集成电路时转换为硬体。此外,本文所述的装置和方法可以软硬件的组合体现。由是,本发明并不受本文所述任何示范实施例之限,而仅为后附的诸权利要求和其均等范围所定义。具体而言,本发明可实作于一微处理器装置内,而其可用于一泛用计算机。最后,本领域的技术人员应认知到在不悖离后附权利要求书保护范围所定义的本发明精神之下,其可轻易以所公开的概念和具体实施例为基础设计或修改其他结构,以达致与本发明相同的目的。

Claims (18)

1.一种微处理器,其特征在于,包含:
多个处理核,每一该处理核包含对应的一核内记忆体,该核内记忆体实体位于对应的该处理核内且可被对应的该处理核读取但不可被其他的该些处理核读取;以及
一核外记忆体,实体位于所有的该些处理核外且可被所有的该些处理核读取;
其中对每一该处理核,该核外记忆体与对应的该核内记忆体共同提供一M字组的储存空间,所述储存空间对可被该处理核提取的多个微码指令而设,于该M字组的所述储存空间中:
该核外记忆体提供该M字组中J字组的所述储存空间;以及
该核内记忆体提供该M字组中K字组的所述储存空间;
其中J、K与M为正整数,且M=J+K。
2.如权利要求1所述的微处理器,其特征在于,该微处理器包含单一个集成电路。
3.如权利要求2所述的微处理器,其特征在于,该些处理核有Q个核内记忆体,Q为大于等于2的整数,该核外记忆体和该Q个核内记忆体于该集成电路上所占的总实体面积小于Q个记忆体于该集成电路上会占去的总实体面积,该Q个记忆体中的每一用以提供M字组的对多个微码指令而设的储存空间。
4.如权利要求3所述的微处理器,其特征在于,该核外记忆体与该Q个核内记忆体为多个只读记忆体。
5.如权利要求3所述的微处理器,其特征在于,该Q个核内记忆体与该核外记忆体为非架构上可见的记忆体。
6.如权利要求1所述的微处理器,其特征在于,对每一该处理核,自对应的该核内记忆体较自该核外记忆体提取多个微码指令省时。
7.如权利要求1所述的微处理器,其特征在于,该些微码指令为多个非架构指令,该些非架构指令用以实作该微处理器的多个架构指令。
8.一种提供微码指令储存空间的方法,用于一微处理器的多个处理核,其特征在于,该提供微码指令储存空间的方法包含:
对每一该处理核,提供M字组的储存空间,所述储存空间是对可被该处理核提取的多个微码指令而设;
其中提供该M字组的所述储存空间包含:
对每一该处理核,自一核外记忆体提供该M字组中J字组的所述储存空间,该核外记忆体实体位于所有的该些处理核外且可被所有的该些处理核读取;以及
对每一该处理核,自对应的一核内记忆体提供该M字组中K字组的所述储存空间,该核内记忆体实体位于对应的该处理核内且仅可被对应的该处理核读取;
其中J、K与M为正整数,且M=J+K。
9.如权利要求8所述的提供微码指令储存空间的方法,其特征在于,该核外记忆体与该核内记忆体为多个只读记忆体。
10.如权利要求8所述的提供微码指令储存空间的方法,其特征在于,该核内记忆体与该核外记忆体为非架构上可见的记忆体。
11.如权利要求8所述的提供微码指令储存空间的方法,其特征在于,该些微码指令为多个非架构指令,该些非架构指令用以实作该微处理器的多个架构指令。
12.一种集成电路,其特征在于,包含:
多个处理核,每一该处理核包含自有的一非共享记忆体,该非共享记忆体实体位于该处理核内且用以储存多个微码指令的一第一部分;以及
一共享记忆体,实体位于该些处理核外且用以储存该些微码指令的一第二部分;
其中每一该处理核用以从自有的该非共享记忆体提取该第一部分,并用以自该共享记忆体提取该第二部分。
13.如权利要求12所述的集成电路,其特征在于,储存于该共享记忆体与该非共享记忆体的该些微码指令为多个非架构指令,该些非架构指令用以实作微处理器的一或多个架构指令。
14.如权利要求12所述的集成电路,其特征在于,每一该处理核包含:
一非架构的程序计数器,用以持有一提取地址,一微码指令依据该提取地址被提取;以及
控制逻辑,用以检验该提取地址的数值,并用以依据该提取地址的数值产生一要求,以自该处理核自有的该非共享记忆体或自该共享记忆体提取下一微码指令。
15.如权利要求14所述的集成电路,其特征在于,当该提取地址在一第一地址范围内,所述控制逻辑用以产生该要求,以自该处理核自有的该非共享记忆体提取该下一微码指令,且当该提取地址在一第二地址范围内,所述控制逻辑用以产生该要求,以自该共享记忆体提取该下一微码指令,该第一地址范围与该第二地址范围在一单一非架构定址空间内。
16.如权利要求15所述的集成电路,其特征在于,该第一地址范围与该第二地址范围于该单一非架构定址空间中相接续。
17.如权利要求14所述的集成电路,其特征在于,于一给定提取地址的微码指令存在于该处理核自有的该非共享记忆体中或该共享记忆体中,但不同时存在于该非共享记忆体与该共享记忆体中。
18.如权利要求12所述的集成电路,其特征在于,还包含:
一仲裁电路,用以于自该共享记忆体提取该些微码指令的多个要求间仲裁,该些要求来自该些处理核。
CN201410212536.XA 2013-03-26 2014-05-20 微处理器、集成电路与提供微码指令储存空间的方法 Active CN104615408B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361805220P 2013-03-26 2013-03-26
US14/072,428 2013-11-05
US14/072,428 US9483263B2 (en) 2013-03-26 2013-11-05 Uncore microcode ROM

Publications (2)

Publication Number Publication Date
CN104615408A CN104615408A (zh) 2015-05-13
CN104615408B true CN104615408B (zh) 2018-11-06

Family

ID=51622022

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410212536.XA Active CN104615408B (zh) 2013-03-26 2014-05-20 微处理器、集成电路与提供微码指令储存空间的方法

Country Status (3)

Country Link
US (1) US9483263B2 (zh)
CN (1) CN104615408B (zh)
TW (1) TWI502498B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105243708B (zh) * 2015-09-22 2017-08-29 中国船舶重工集团公司第七一八研究所 一种智能锁内分层程序及冗余控制架构
CN106650923B (zh) * 2015-10-08 2019-04-09 上海兆芯集成电路有限公司 具有神经存储器与神经处理单元与定序器的神经网络单元

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272612B1 (en) * 1997-09-04 2001-08-07 Bull S.A. Process for allocating memory in a multiprocessor data processing system
CN101165655A (zh) * 2006-10-20 2008-04-23 国际商业机器公司 多处理器计算系统及其任务分配方法
CN102306139A (zh) * 2011-08-23 2012-01-04 北京科技大学 用于ofdm无线通信系统的异构多核数字信号处理器
CN102707988A (zh) * 2011-04-07 2012-10-03 威盛电子股份有限公司 执行模式备份寄存器的模拟

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081888A (en) * 1997-08-21 2000-06-27 Advanced Micro Devices Inc. Adaptive microprocessor with dynamically reconfigurable microcode responsive to external signals to initiate microcode reloading
US6654875B1 (en) * 2000-05-17 2003-11-25 Unisys Corporation Dual microcode RAM address mode instruction execution using operation code RAM storing control words with alternate address indicator
US6668308B2 (en) * 2000-06-10 2003-12-23 Hewlett-Packard Development Company, L.P. Scalable architecture based on single-chip multiprocessing
US6925537B2 (en) * 2001-06-11 2005-08-02 Hewlett-Packard Development Company, L.P. Multiprocessor cache coherence system and method in which processor nodes and input/output nodes are equal participants
US7827390B2 (en) * 2007-04-10 2010-11-02 Via Technologies, Inc. Microprocessor with private microcode RAM
EP2015174B1 (en) * 2007-06-21 2018-03-14 Imsys AB Microprogrammed processor having multiple processor cores using time-shared access to a microprogram control store
US20100180104A1 (en) * 2009-01-15 2010-07-15 Via Technologies, Inc. Apparatus and method for patching microcode in a microprocessor using private ram of the microprocessor
CN101510191B (zh) * 2009-03-26 2010-10-06 浙江大学 具备缓存窗口的多核体系架构的实现方法
US8117498B1 (en) * 2010-07-27 2012-02-14 Advanced Micro Devices, Inc. Mechanism for maintaining cache soft repairs across power state transitions
US10209986B2 (en) * 2011-12-22 2019-02-19 Intel Corporation Floating point rounding processors, methods, systems, and instructions
CN104011645B (zh) * 2011-12-22 2018-06-26 英特尔公司 用于产生其中在连续位置中的整数相差恒定整数跨度且最小整数从零偏移整数偏移量的整数序列的处理器、方法、系统和含有指令的介质
CN104246692B (zh) * 2012-03-30 2018-02-23 英特尔公司 用于实时指令跟踪的系统和方法
US9298631B2 (en) * 2012-06-15 2016-03-29 International Business Machines Corporation Managing transactional and non-transactional store observability
US9424191B2 (en) * 2012-06-29 2016-08-23 Intel Corporation Scalable coherence for multi-core processors
US9582287B2 (en) * 2012-09-27 2017-02-28 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
US9128781B2 (en) * 2012-12-28 2015-09-08 Intel Corporation Processor with memory race recorder to record thread interleavings in multi-threaded software
US9262163B2 (en) * 2012-12-29 2016-02-16 Intel Corporation Real time instruction trace processors, methods, and systems
US9207880B2 (en) * 2013-12-27 2015-12-08 Intel Corporation Processor with architecturally-visible programmable on-die storage to store data that is accessible by instruction

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272612B1 (en) * 1997-09-04 2001-08-07 Bull S.A. Process for allocating memory in a multiprocessor data processing system
CN101165655A (zh) * 2006-10-20 2008-04-23 国际商业机器公司 多处理器计算系统及其任务分配方法
CN102707988A (zh) * 2011-04-07 2012-10-03 威盛电子股份有限公司 执行模式备份寄存器的模拟
CN102306139A (zh) * 2011-08-23 2012-01-04 北京科技大学 用于ofdm无线通信系统的异构多核数字信号处理器

Also Published As

Publication number Publication date
TW201437913A (zh) 2014-10-01
US20140297993A1 (en) 2014-10-02
CN104615408A (zh) 2015-05-13
US9483263B2 (en) 2016-11-01
TWI502498B (zh) 2015-10-01

Similar Documents

Publication Publication Date Title
KR101594090B1 (ko) 공유 메모리에 대한 액세스들의 동기화를 완화하기 위한 프로세서들, 방법들 및 시스템들
CN104050012B (zh) 指令模拟处理器、方法和系统
CN104881270B (zh) 具有条件指令的微处理器及其处理方法
CN100359464C (zh) 具有预取指令的微处理器及预取至其高速缓存的方法
CN104756090B (zh) 提供扩展的缓存替换状态信息
CN104077107B (zh) 利用经掩码的全寄存器访问实现部分寄存器访问的处理器、方法和系统
BR102020019657A2 (pt) aparelhos, métodos e sistemas para instruções de um acelerador de operações de matriz
TW201802668A (zh) 可中斷及可重啟矩陣乘法指令、處理器、方法和系統
CN108292215A (zh) 用于加载-索引和预取-聚集操作的指令和逻辑
CN115562729A (zh) 具有带读取和读取/前进操作数编码的流引擎的数据处理设备
CN107810486B (zh) 锁定用于原子地执行的指令组的操作数的值
CN108369516A (zh) 用于加载-索引和预取-分散操作的指令和逻辑
ES2934513T3 (es) Sistemas y métodos para omitir operaciones matriciales intrascendentes
CN106575216A (zh) 数据元素选择和合并处理器、方法、系统和指令
CN104025027B (zh) 结构访问处理器、方法、系统和指令
TWI514272B (zh) 融合if-then指令之微處理器及其方法
CN107832083A (zh) 具有条件指令的微处理器及其处理方法
JP2017539008A (ja) データ投機実行のためのシステム、装置および方法
JP2018500662A (ja) データ投機実行のためのシステム、装置および方法
JP2014510351A (ja) マスクレジスタを用いてジャンプを行うシステム、装置、および方法
CN109992455A (zh) 用于暂停处理器跟踪以进行高效分析的设备和方法
TW201732578A (zh) 用於陣列結構的向量儲存/載入指令
CN104615408B (zh) 微处理器、集成电路与提供微码指令储存空间的方法
EP3295299A1 (en) Decoding information about a group of instructions including a size of the group of instructions
CN101615132A (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
GR01 Patent grant
GR01 Patent grant