CN101707881A - 微码仿真存储器的高速缓存 - Google Patents

微码仿真存储器的高速缓存 Download PDF

Info

Publication number
CN101707881A
CN101707881A CN200880018278A CN200880018278A CN101707881A CN 101707881 A CN101707881 A CN 101707881A CN 200880018278 A CN200880018278 A CN 200880018278A CN 200880018278 A CN200880018278 A CN 200880018278A CN 101707881 A CN101707881 A CN 101707881A
Authority
CN
China
Prior art keywords
microcode
access
cache
processor
level caches
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
CN200880018278A
Other languages
English (en)
Other versions
CN101707881B (zh
Inventor
G·劳特巴赫
B·R·霍洛韦
M·G·布特勒
S·赖
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN101707881A publication Critical patent/CN101707881A/zh
Application granted granted Critical
Publication of CN101707881B publication Critical patent/CN101707881B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/3824Operand accessing
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • 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/30098Register 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
    • 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

Abstract

一种处理器,包括含有1阶高速缓存和更高阶高速缓存的高速缓存层次结构。该处理器映射部分的物理存储器空间到部分的该更高阶高速缓存、执行指令,至少一些该指令包括微码,允许微码来存取该更高阶高速缓存的该部分、与防止不包括微码的指令来存取该更高阶高速缓存的该部分。该物理存储器空间的该第一部分系可永久地分配给微码来使用。该处理器可把该更高阶高速缓存的该第一部分的一个或更多的高速缓存列从该更高阶高速缓存移到该1阶高速缓存的第一部分、允许微码来存取该第一1阶高速缓存的该第一部分,与防止不包括微码的指令来存取该第一1阶高速缓存的该第一部分。

Description

微码仿真存储器的高速缓存
技术领域
本发明系关于微处理器,且更具体地关于以微码仿真复杂指令,且又更具体地关于在这样仿真过程中高速缓存被使用的存储器。
背景技术
尽管想要让微处理器能维持与复杂指令集计算机(CISC)架构的兼容性,但是其它架构提供了改良的执行速率和效能。微处理器设计者已经试图藉由仿真CISC指令来达到CISC的兼容性与高效能这两者。举例来说,超纯量(superscalar)的精简指令集计算机(RISC)架构可包括履行CISC指令仿真的微码。在该仿真程序过程中,微码使用暂存(scratchpad)存储器来储存中间数值。为了维持高效能,想要让微处理器的微码能够尽快地存取该仿真存储器。
此外,微处理器通常包括层次结构排列与被多重核心或执行单元所分享的多重存储器高速缓存。各种高速缓存架构系被使用且包括晶载高速缓存(on-chip cache)和非晶载高速缓存(off-chip cache)的许多组合。从高速缓存或存储器中读取数据的存储器运作可更简便地在此被视为「载入(loads)」。写入数据到高速缓存或存储器中的存储器运作可更简便地在此被视为「储存(stores)」。载入或储存可针对具体高速缓存列(或部分高速缓存列)且包括识别该目标列以及包括要被从该高速缓存列载入或储存入该高速缓存列的数据的地址。由于高速缓存存取比存储器存取还要快,因此许多高速缓存技术被用来在当核心或执行单元需要存取数据时增加该数据位于高速缓存的可能性,因此改善执行速率。因此高速缓存该微码仿真存储器提供相较于系统存储器比较快的高速缓存的存取时间的效能优势。该最短存取时间一般系为与该存储器层次结构的最低阶相关联者,通常视为L1-高速缓存或仅为L1。因此想要高速缓存在L1里的该微码仿真存储器。这些效能优势已经常常藉由微码仿真存储器的部分L1的永久分配来加强。
当然,使用该L1-高速缓存的效能优势也有益于其它程序。因此,想要使该L1-高速缓存尽可能的大以增加对于任何程序的L1-高速缓存空间的可用性。然而,增加L1的尺寸系增加该微处理器的成本和复杂度。并且,如果该微码仿真存储器永久分配在L1中,则L1的此部分系无法被其它程序来使用。为了对付该上述顾虑,需要能改善在已知大小L1-高速缓存的空间的对于所有程序的可用性,同时维持高速缓存该微码仿真存储器的优点。
发明内容
本文揭露处理器、计算机系统和方法的许多实施例.该处理器系包括含有至少第一1阶(level-1)高速缓存和较高阶高速缓存的高速缓存层次结构.该处理器系配置来映射物理存储器空间的第一部分到该较高阶高速缓存的的第一部分、执行至少其中的一些包括微码的指令、允许微码能存取该较高阶高速缓存的第一部分、与防止不包括微码的指令去存取该较高阶高速缓存的第一部分.在一个实施例中,该较高阶高速缓存系为第二阶高速缓存.在另一个实施例中,该物理存储器空间的第一部分永久分配给微码来使用.
在又一个实施例中,该处理器系配置来把该较高阶高速缓存的第一部分的一个或多个高速缓存列从该较高阶高速缓存移动到该第一1阶高速缓存的第一部分。该处理器系进一步配置来允许微码能存取该第一1阶高速缓存的第一部分及防止不包含微码的指令来存取该第一1阶高速缓存的第一部分。
在更又一实施例中,该处理器系配置来探测微码存取信号。该处理器系进一步配置来在如果该微码存取信号没有确立则防止指令来存取该物理存储器空间的第一部分,及在如果该微码存取信号有确立则允许指令来存取该物理存储器空间的第一部分。
在又一个实施例中,该处理器系包括变换后备缓冲区(translationlook-aside buffer,简称TLB),其防止没包含微码的指令来存取该物理存储器空间的第一部分。该处理器系进一步配置来不允许TLB来再填满到该物理存储器空间的第一部分。
附图说明
图1系为计算机系统的一个实施例的广义方块图。
图2系图标虚拟存储器和高速缓存架构的一个实施例。
图3系图示用来存取包括微码仿真存储器的存储器层次结构的程序的一个实施例。
图4系图示用来存取在1阶高速缓存中的微码仿真存储器的程序的一个实施例。
图5系为包含结合到各种系统组件的L2数据高速缓存和微码仿真存储器的计算机系统的一个实施例的方块图。
虽然本发明容许有不同的修改与替代形式,但是具体实施例系以图式中的例子的方式来表示且在此详细地叙述。然而应该了解的是,图式与有关的详细叙述并不是要来限制本发明为所揭露的特定形式,而相反地,本发明系涵盖如附加的申请专利范围所定义的本发明的精神与范围内的所有修改型式、相等物和替代形式。
具体实施方式
图1系为计算机系统100的一个实施例的广义方块图。在该图示的实施例中,处理器110系显示为结合到存储器150。存储器150可包括SDRAM、SRAM、ROM、DRAM和/或其它习知的存储器装置。处理器110包括核心120、L2数据高速缓存130、和L2变换后备缓冲区(TLB)140。核心120包括执行单元122、载入/储存单元124、L1数据高速缓存126、和L1 TLB 128。L2数据高速缓存130包括微码仿真存储器135。在替代的实施例中,处理器110可包括至少一个核心,每个核心包括1阶数据高速缓存且每个核心分享单一2阶数据高速缓存。在一个替代实施例中,L1资料高速缓存126可从核心120中分离出来。在其它替代实施例中,额外的高速缓存阶系可被包含在计算机系统100中,例如第3阶高速缓存不是被包含在处理器110中就是从处理器110中分离出来。在这些和其它替代实施例中,微码仿真存储器135可包含任何高于1阶的高速缓存阶。也可设想各种其它实施例。然而,为了容易了解,下面的例子将假设空间是永久分配在微码仿真存储器135的2阶数据高速缓存中。
在运作过程中,执行单元122可经由连结161从载入/储存单元124接收要被执行的载入的该数据部分,与经由连结162来运送储存的该数据部分到载入/储存单元124.载入/储存单元124可经由连结163从L1数据高速缓存126接收要被执行的载入的该数据部分与经由连结164运送储存的该数据部分到L1数据高速缓存126.L1数据高速缓存126可经由连结165来从L2数据高速缓存130接收载入的该数据部分与经由连结166来运送储存的该数据部分到L2数据高速缓存130.L2数据高速缓存130可经由连结167来从存储器150接收载入的该数据部分与运送储存的该数据部分到存储器150.L1 TLB 128显示为经由连结171来结合到L1数据高速缓存126、经由连结172来结合到L2数据高速缓存130、与经由连结173来结合到L2 TLB 140。L2 TLB 140也显示为经由连结174来结合到L2数据高速缓存130。
L1资料高速缓存126、L1 TLB 128、L2资料高速缓存130、和L2TLB 140可履行常见的地址变换(address translation)和高速缓存功能。举例来说,L1 TLB 128可高速缓存虚拟地址的映像到实体地址。当存储器存取要求发生时,可检查L1 TLB 128以察看到实体地址的想要的虚拟地址的映像是否被高速缓存了。高速缓存在L1 TLB 128中的映像可使用来判定想要的高速缓存列是否存在L1数据高速缓存126中。如果想要的高速缓存列不存在L1数据高速缓存126中,也就是有L1高速缓存未击中,则可检查L2 TLB 140以察看至实体地址的想要的虚拟地址的映像是否被高速缓存了。高速缓存在L2 TLB 140的映像系可用来判定想要的高速缓存列是否存在L2数据高速缓存130中。当高速缓存未击中系发生在L1资料高速缓存126中时,为了让出空位给新的项目,高速缓存列系可被从L1资料高速缓存126逐出到L2资料高速缓存130。在L1 TLB 128中的对应项目系可移动到L2 TLB 140。为了让出空位给在L2数据高速缓存130中的新项目,可能必须把高速缓存列从L2数据高速缓存130逐出到存储器150。可为了该想要的高速缓存列和高速缓存在L1 TLB 128的该结果而履行新地址变换,可被称为TLB再填满(TLB refill)的程序。用以说明与避免微码仿真存储器135的讹误(corruption)的数据高速缓存126和130及TLBs 128和140的该运作的进一步细节将在下面被提出。
图2系图示可与处理器110一起使用的虚拟存储器和高速缓存架构的一个实施例。在该图式中显示出虚拟存储器空间210,部分系被映射到物理存储器地址空间220。部分物理存储器地址空间220系显示为映射到L2高速缓存空间230,部分系依次映射到L1高速缓存空间240。执行在处理器110上的每个应用系可使用个别的虚拟存储器地址空间。如图标在图2中的虚拟存储器地址空间210系包括代表映射到物理存储器地址空间220与可利用来借着及时在已知点中的应用以存取的该部分虚拟存储器的区块211至215。同样地,物理存储器地址空间220系包括代表高速缓存在L2高速缓存空间230中的该部分物理存储器的区块221至224。同样地,L2高速缓存空间230包括代表高速缓存在L1高速缓存空间240中的该部分L2高速缓存的区块231至233。更具体地说,L2高速缓存空间230的区块231、232和233系分别映射到L1高速缓存空间240的区块242、243和241。在许多实施例中,上述的每个区块可代表高速缓存列组、相同大小的区块、高速缓存列或区块的群组、或变化大小的区块的其中一个。在替代实施例中,任何虚拟存储器地址空间210、物理存储器地址空间220、L2高速缓存空间230、和L1高速缓存空间240系可包括相较于显示在图2中的该数量更多或更少的区块。
在一个实施例中,区块221可被保留在物理存储器空间220中以作为微码仿真存储器.此外,L2高速缓存空间230的区块231可永久被保留来高速缓存微码仿真存储器的内容.在运作过程中,当处理器110想要存取微码仿真存储器时,区块231可被高速缓存在例如区块242中的1阶高速缓存中,如图2所示.然而,区块242可不会如区块231那样永久地保留给微码仿真存储器来使用.高速缓存在L1中的该区块系可依据程序的执行而随时间改变.因此,微码仿真存储器系可从L1被逐出到L2,其中,区块231系保留给它使用.在一个实施例中,可借着拒绝涉及物理存储器空间的区块221的L1 TLB的再填满以避免藉由应用或程序而不是微码的对于微码仿真存储器的存取。
图3系图示用来存取包括微码仿真存储器的存储器层次结构的程序300的一个实施例。存储器存取可由对于关联于被执行单元所译码的每个指令的微码存取信号(未图示)的存在的检查来开始(判断方块310)。举例来说,在一个实施例中,每个被译码的指令的位系可被当作微码存取信号般地来使用。在替代实施例中,微码指令系可具有当作微码存取信号且藉此它们可被识别为微码的特殊运算码。任何的各种替代微码存取信号可被从执行单元传送到高速缓存控制器以指出指令是否为微码指令。如果探测到微码存取信号,则可允许对于该微码仿真存储器的存取(方块320)且完成该存取。
如果没有探测到该微码存取信号,则程序300可如下地来进行。可搜寻一个或更多的TLBs以找到符合该存取的目标的该高速缓存列的项目(方块330)。如果在L1 TLB中找到符合的项目(判断方块340),则可存取该目标高速缓存列(方块390)并完成该存取。如果符合的项目没有在L1 TLB被找到而是在L2 TLB被找到(判断方块350),然后该目标高速缓存列可被从该L2高速缓存移到该L1高速缓存(方块360),则可存取该目标高速缓存列(方块390),并完成该存取。如果符合的项目没有在L1或L2高速缓存被找到,则可履行地址变换(方块370)。如果该地址变换的结果系产生位于该微码仿真存储器中的目标地址(判断方块380),则可防止该存取(方块384)结束该存取企图。如果该地址变换的结果系产生不是位于该微码仿真存储器中的目标地址(判断方块380),然后可履行TLB再填满(方块382),则可存取该目标高速缓存列(方块390),并完成该存取。
图4系图示用来存取在1阶高速缓存中的微码仿真存储器的程序400的一个实施例。目标为微码仿真存储器的存取要求可由察看该目标高速缓存列是否高速缓存在L1高速缓存中来开始(判断方块410)。如果是这样的话,则允许对于该目标高速缓存列的存取(方块420)并完成该存取。如果该目标高速缓存列没有高速缓存在L1高速缓存中,则可获得在L2高速缓存中的该目标高速缓存列的该保留位置(方块430)。该目标高速缓存列接着可从L2高速缓存移到L1高速缓存(方块440)。一旦该目标高速缓存列移到L1高速缓存,则可允许存取(方块420)并完成该存取。
现在翻到图5,其显示出包括结合到各种系统组件的L2数据高速缓存560和微码仿真存储器135的计算机系统500的一个实施例的方块图。在该描述的系统中,显示处理器510结合到外围520与结合到存储器530。外围520可包括任何各种装置,例如可在习知的计算机系统中找到的网络接口、时序(timing)电路、储存媒体、输入/输出装置等等。存储器530可包括SDRAM、SRAM、ROM、DRAM与/或其它常见存储器装置。处理器510包括核心540A和540B、写入联合高速缓存(write coalescing cache)550、2阶数据高速缓存560、和I/O接口570.I/O接口570可结合每个核心540到外围520.藉由参照后面接着字母的数字来参照于此之组件可共同地由该参照数字来单独地称呼.举例来说,核心540A和540B系可称为核心540且未指定的一个核心540可称为核心540.
每个核心540包括1阶数据高速缓存542、储存逻辑单元544、和载入/储存管线546。储存逻辑单元544(取而代之称之为「储存单元」)可代表部分的载入/储存单元、个别逻辑单元、或其组合。储存逻辑544可结合到1阶数据高速缓存542和写入联合高速缓存550这两者以使核心540能够写入任何一个高速缓存阶。更具体地说,储存逻辑544可传送储存584到1阶数据高速缓存542与传送储存582到写入联合高速缓存550。写入联合高速缓存550可进一步藉由填满564与逐出566以结合到2阶数据高速缓存560。写入联合高速缓存550可联合储存582到填满564以产生逐出566的减低号码。2阶数据高速缓存560可进一步结合到每个1阶数据高速缓存542。更具体地说,2阶数据高速缓存560可传送填满562到1阶数据高速缓存542。2阶数据高速缓存560也可双向地结合到存储器530。
在运作过程中,核心540可执行一串的指令,当译码时,导致从L1数据高速缓存542之载入586到载入/储存管线546与/或从载入/储存管线546之储存580到储存逻辑544。被核心540执行的该指令可包括微码的执行。当微码执行需要存取到微码仿真存储器135中的高速缓存列时,可存取该目标的高速缓存列,且如有必要则使用在上面图4中描述的该程序以从L2数据高速缓存560移到L1资料高速缓存542。一旦该目标高速缓存列被移到L1数据高速缓存542,则可藉由载入586和/或储存580与584来存取。
虽然系统500如图标地包括两个核心,但是在替代实施例中可包括多于两个的核心且/或每个核心可代表执行单元的丛集(cluster)。额外的2阶高速缓存也可被包括在包含多于两个的核心的进一步替代实施例中。此外,虽然2阶资料高速缓存560系被显示为直接接合到存储器530且存储器530系显示为处理器外的(off-processor)存储器,但是处理器510可包括存储器控制器与/或处理器内的(on-processor)存储器。或可取而代之,处理器外的存储器控制器可结合2阶数据高速缓存560到存储器530。许多的处理器核心和存储器配置对于一个熟习此技艺之人士来说将是显而易见的。
要注意的是,该上述的实施例可包括软件。在这样的实施例中,实施该方法与/或机制的该程序指令系可被传送或储存在计算机可存取的媒体上。配置以储存程序指令的许多类型的媒体系可利用的且包括硬盘、软盘、CD-ROM、DVD、闪存、可程序的ROMs(PROM)、随机存取存储器(RAM)、与不同的其它形式的依电性或非依电性储存器。配置以传送藉由计算装置来存取的程序指令的又其它形式的媒体系包括地面的(terrestrial)和非地面的通讯连接,例如可传送电气的、电磁的、光的、或数字信号的网络、无线、和卫星连接。因此,不同的实施例可进一步包括根据前述的基于计算机可存取的媒体而实施的接收、送出或储存指令和/或数据。
虽然上述的实施例已予相当详细的说明,但是一旦完全地了解该上述揭露,则许多的变形和修饰对于熟习此技艺之人士来说将变得显而易见。下列的申请专利范围是要诠释成包括所有这类的变形和修饰。
产业利用性
本发明一般可应用于微处理器。

Claims (20)

1.一种处理器,包括:
高速缓存层次结构,包含至少第一1阶高速缓存和更高阶高速缓存;
其中,该处理器被配置为:
映射物理存储器空间的第一部分到该更高阶高速缓存的第一部分;
执行指令,至少一些该指令包括微码;
允许微码来存取该更高阶高速缓存的该第一部分;以及
防止不包括微码的指令来存取该更高阶高速缓存的该第一部分。
2.如权利要求1所述的处理器,其中,该更高阶高速缓存为2阶高速缓存。
3.如权利要求1所述的处理器,其中,该物理存储器空间的该第一部分永久地分配给微码来使用。
4.如权利要求1所述的处理器,其中,该处理器进一步被配置为:
从该更高阶高速缓存,把该更高阶高速缓存的该第一部分的一个或多个高速缓存列移到该第一1阶高速缓存的第一部分;
允许微码来存取该第一1阶高速缓存的该第一部分;以及
防止不包括微码的指令来存取该第一1阶高速缓存的该第一部分。
5.如权利要求1所述的处理器,其中,该处理器进一步被配置为:
探测微码存取信号;
如果没有确立该微码存取信号,则防止指令来存取该物理存储器空间的该第一部分;以及
如果有确立该微码存取信号,则允许指令来存取该物理存储器空间的该第一部分。
6.如权利要求5所述的处理器,进一步包括变换后备缓冲区,其用来防止不包括微码的指令来存取该物理存储器空间的该第一部分,该处理器进一步配置以拒绝变换后备缓冲区再填满该物理存储器空间的该第一部分。
7.如权利要求1所述的处理器,进一步包括至少第一核心和第二核心,其中,该第二核心被配置为:
映射该物理存储器空间的第二部分到该更高阶高速缓存的第二部分;
执行指令,至少一些该指令包括微码;
允许微码来存取该更高阶高速缓存的该第二部分;以及
防止不包括微码的指令来存取该更高阶高速缓存的该第二部分。
8.如权利要求7所述的处理器,其中,该第一核心包含该第一1阶高速缓存与该第二核心包含第二1阶高速缓存;
其中,该第一核心进一步被配置为:
从该更高阶高速缓存,把映射到该更高阶高速缓存的该第一部分的一个或更多的高速缓存列移到该第一1阶高速缓存的一部分;
允许微码来存取该第一1阶高速缓存的一部分;以及
防止不包括微码的指令来存取该第一1阶高速缓存的一部分;以及
其中,该第二核心进一步被配置为:
从该更高阶高速缓存,把映射到该更高阶高速缓存的该第二部分的一个或更多的高速缓存列移到该第二1阶高速缓存的一部分;
允许微码来存取该第二1阶高速缓存的一部分;以及
防止不包括微码的指令来存取该第二1阶高速缓存的一部分。
9.一种方法,包括:
映射物理存储器空间的第一部分到处理器的高速缓存层次结构中的更高阶高速缓存的第一部分;
第一处理器核心执行指令,至少一些该指令包括微码;
该第一处理器核心允许微码来存取该更高阶高速缓存的该第一部分;以及
该第一处理器核心防止不包括微码的指令来存取该更高阶高速缓存的该第一部分。
10.如权利要求9所述的方法,其中,该更高阶高速缓存为2阶高速缓存。
11.如权利要求9所述的方法,进一步包括永久地分配该物理存储器空间的第一部分给微码来使用。
12.如权利要求9所述的方法,进一步包括:
从该更高阶高速缓存,把该更高阶高速缓存的该第一部分的一个或更多的高速缓存列移到该处理器的第一1阶高速缓存的第一部分;
允许微码来存取该第一1阶高速缓存的该第一部分;以及
防止不包括微码的指令来存取该第一1阶高速缓存的该第一部分。
13.如权利要求9所述的方法,进一步包括:
探测微码存取信号;
如果没有确立该微码存取信号,则防止指令来存取该物理存储器空间的该第一部分;以及
如果确立该微码存取信号,则允许指令来存取该物理存储器空间的该第一部分。
14.如权利要求13所述的方法,其中,如果没有确立该微码存取信号,则防止指令来存取该物理存储器空间的该第一部分,进一步包括拒绝再填满到来自变换后备缓冲区的该物理存储器空间的该第一部分。
15.如权利要求9所述的方法,进一步包括:
映射该物理存储器空间的第二部分到该更高阶高速缓存的第二部分;
第二处理器核心执行指令,至少一些该指令包括微码;
该第二处理器核心允许微码来存取该更高阶高速缓存的该第二部分;以及
该第二处理器核心防止不包括微码的指令来存取该更高阶高速缓存的该第二部分。
16.如权利要求15所述的方法,进一步包括:
从该更高阶高速缓存,把映射到该更高阶高速缓存的该第一部分的一个或更多的高速缓存列移到第一1阶高速缓存的一部分;
从该更高阶高速缓存,把映射到该更高阶高速缓存的该第二部分的一个或更多的高速缓存列移到第二1阶高速缓存的一部分;
允许微码来存取该第一1阶高速缓存的一部分和/或该第二1阶高速缓存的一部分;
防止不包括微码的指令来存取该第一1阶高速缓存的一部分;以及
防止不包括微码的指令来存取该第二1阶高速缓存的一部分。
17.一种计算机系统,包括:
至少一个处理器,结合到存储器与一个或更多的外围装置;
其中,该至少一处理器包括包含至少第一1阶高速缓存和更高阶高速缓存的高速缓存层次结构;
其中,该至少一个处理器被配置为:
映射物理存储器空间的第一部分到该更高阶高速缓存的第一部分;
执行指令,至少一些该指令包括微码;
允许微码来存取该更高阶高速缓存的该第一部分;以及
防止不包括微码的指令来存取该更高阶高速缓存的该第一部分。
18.如权利要求17所述的计算机系统,其中,该至少一个处理器进一步被配置为:
从该更高阶高速缓存,把该更高阶高速缓存的该第一部分的一个或更多的高速缓存列移到该第一1阶高速缓存的第一部分;
允许微码来存取该第一1阶高速缓存的该第一部分;以及
防止不包括微码的指令来存取该第一1阶高速缓存的该第一部分。
19.如权利要求17所述的计算机系统,其中,该至少一个处理器进一步被配置为:
探测微码存取信号;
如果没有确立该微码存取信号,则防止指令来存取该物理存储器空间的该第一部分;以及
如果确立该微码存取信号,则允许指令来存取该物理存储器空间的该第一部分。
20.如权利要求17所述的计算机系统,其中,该至少一个处理器进一步包括变换后备缓冲区,其用来防止不包括微码的指令来存取该物理存储器空间的该第一部分,该至少一个处理器进一步被配置为拒绝变换后备缓冲区再填满该物理存储器空间的该第一部分。
CN200880018278.4A 2007-05-29 2008-05-28 微码仿真存储器的高速缓存 Active CN101707881B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/754,589 2007-05-29
US11/754,589 US7734873B2 (en) 2007-05-29 2007-05-29 Caching of microcode emulation memory
PCT/US2008/006746 WO2008153799A1 (en) 2007-05-29 2008-05-28 Caching of microcode emulation memory

Publications (2)

Publication Number Publication Date
CN101707881A true CN101707881A (zh) 2010-05-12
CN101707881B CN101707881B (zh) 2016-06-15

Family

ID=39708011

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880018278.4A Active CN101707881B (zh) 2007-05-29 2008-05-28 微码仿真存储器的高速缓存

Country Status (8)

Country Link
US (1) US7734873B2 (zh)
JP (1) JP5496085B2 (zh)
KR (1) KR101503865B1 (zh)
CN (1) CN101707881B (zh)
DE (1) DE112008001473B4 (zh)
GB (1) GB2462556B (zh)
TW (1) TWI457826B (zh)
WO (1) WO2008153799A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106469020A (zh) * 2015-08-19 2017-03-01 旺宏电子股份有限公司 高速缓存元件与控制方法及其应用系统

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8296528B2 (en) * 2008-11-03 2012-10-23 Intel Corporation Methods and systems for microcode patching
US20120017039A1 (en) * 2010-07-16 2012-01-19 Plx Technology, Inc. Caching using virtual memory
US9529729B2 (en) * 2010-11-16 2016-12-27 International Business Machines Corporation Location of memory management translations in an emulated processor
US9251093B2 (en) 2011-05-19 2016-02-02 International Business Machines Corporation Managing the translation look-aside buffer (TLB) of an emulated machine
US10884751B2 (en) 2018-07-13 2021-01-05 Advanced Micro Devices, Inc. Method and apparatus for virtualizing the micro-op cache
US11016763B2 (en) 2019-03-08 2021-05-25 Advanced Micro Devices, Inc. Implementing a micro-operation cache with compaction

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901235A (en) 1983-10-28 1990-02-13 Data General Corporation Data processing system having unique multilevel microcode architecture
JPH0738175B2 (ja) * 1987-10-20 1995-04-26 富士通株式会社 仮想記憶装置のデータ保護検査方法
US5278973A (en) 1989-03-27 1994-01-11 Unisys Corporation Dual operating system computer
US5132927A (en) * 1990-10-09 1992-07-21 Tandem Computers Incorporated System for cache space allocation using selective addressing
WO1993006549A1 (en) 1991-09-19 1993-04-01 Chips And Technologies, Inc. A system for performing input and output operations to and from a processor
US5905997A (en) 1994-04-29 1999-05-18 Amd Inc. Set-associative cache memory utilizing a single bank of physical memory
US5826052A (en) * 1994-04-29 1998-10-20 Advanced Micro Devices, Inc. Method and apparatus for concurrent access to multiple physical caches
JP3177117B2 (ja) 1994-05-11 2001-06-18 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 複数のノード内の制御コードを更新する方法および装置
JPH07311752A (ja) 1994-05-11 1995-11-28 Internatl Business Mach Corp <Ibm> 分散データ処理システム及び初期プログラムロード方法
US5926642A (en) 1995-10-06 1999-07-20 Advanced Micro Devices, Inc. RISC86 instruction set
US5864689A (en) 1995-12-05 1999-01-26 Advanced Micro Devices, Inc. Microprocessor configured to selectively invoke a microcode DSP function or a program subroutine in response to a target address value of branch instruction
US5950012A (en) * 1996-03-08 1999-09-07 Texas Instruments Incorporated Single chip microprocessor circuits, systems, and methods for self-loading patch micro-operation codes and patch microinstruction codes
US5796972A (en) 1997-01-14 1998-08-18 Unisys Corporation Method and apparatus for performing microcode paging during instruction execution in an instruction processor
US6141740A (en) 1997-03-03 2000-10-31 Advanced Micro Devices, Inc. Apparatus and method for microcode patching for generating a next address
US5889978A (en) 1997-04-18 1999-03-30 Intel Corporation Emulation of interrupt control mechanism in a multiprocessor system
AU7575398A (en) 1998-05-15 1999-12-06 Richard Rubinstein Shared, reconfigurable cache memory execution subsystem
JP2000194602A (ja) * 1998-12-28 2000-07-14 Nec Corp 情報処理装置、マイクロプロセッサ及び外部キャッシュメモリの制御方法
US6745306B1 (en) * 1999-07-29 2004-06-01 Microsoft Corporation Method and system for restricting the load of physical address translations of virtual addresses
US6457100B1 (en) * 1999-09-15 2002-09-24 International Business Machines Corporation Scaleable shared-memory multi-processor computer system having repetitive chip structure with efficient busing and coherence controls
US6397301B1 (en) * 1999-12-29 2002-05-28 Intel Corporation Preventing access to secure area of a cache
US6643800B1 (en) 2000-02-02 2003-11-04 Hewlett-Packard Development Company, L.P. Method and apparatus for testing microarchitectural features by using tests written in microcode
US6804772B2 (en) * 2000-06-12 2004-10-12 Broadcom Corporation Dynamic field patchable microarchitecture
EP1182570A3 (en) * 2000-08-21 2004-08-04 Texas Instruments Incorporated TLB with resource ID field
US6754765B1 (en) * 2001-05-14 2004-06-22 Integrated Memory Logic, Inc. Flash memory controller with updateable microcode
US7346757B2 (en) * 2002-10-08 2008-03-18 Rmi Corporation Advanced processor translation lookaside buffer management in a multithreaded system
US7797492B2 (en) * 2004-02-20 2010-09-14 Anoop Mukker Method and apparatus for dedicating cache entries to certain streams for performance optimization
US7370243B1 (en) * 2004-06-30 2008-05-06 Sun Microsystems, Inc. Precise error handling in a fine grain multithreaded multicore processor
US7437581B2 (en) * 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
JP2006209527A (ja) 2005-01-28 2006-08-10 Nokia Corp コンピュータシステム
US7095342B1 (en) 2005-03-31 2006-08-22 Intel Corporation Compressing microcode
US7827390B2 (en) * 2007-04-10 2010-11-02 Via Technologies, Inc. Microprocessor with private microcode RAM
US7681020B2 (en) * 2007-04-18 2010-03-16 International Business Machines Corporation Context switching and synchronization

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106469020A (zh) * 2015-08-19 2017-03-01 旺宏电子股份有限公司 高速缓存元件与控制方法及其应用系统

Also Published As

Publication number Publication date
DE112008001473T5 (de) 2010-07-01
GB2462556B (en) 2012-05-30
JP5496085B2 (ja) 2014-05-21
CN101707881B (zh) 2016-06-15
TW200905555A (en) 2009-02-01
US7734873B2 (en) 2010-06-08
DE112008001473B4 (de) 2021-08-26
US20080301364A1 (en) 2008-12-04
KR101503865B1 (ko) 2015-03-24
JP2010529534A (ja) 2010-08-26
GB0920954D0 (en) 2010-01-13
WO2008153799A1 (en) 2008-12-18
KR20100022483A (ko) 2010-03-02
TWI457826B (zh) 2014-10-21
GB2462556A (en) 2010-02-17

Similar Documents

Publication Publication Date Title
KR101651911B1 (ko) 수축 압축을 위한 고속의 고도로 압축된 lz77 토큰화 및 허프만 인코딩을 위한 병렬 장치
CN101707881A (zh) 微码仿真存储器的高速缓存
CN101194237B (zh) 包含可配置的转换旁视缓冲器的微处理器
CN109582214B (zh) 数据访问方法以及计算机系统
US20040088489A1 (en) Multi-port integrated cache
US6356990B1 (en) Set-associative cache memory having a built-in set prediction array
US20210089470A1 (en) Address translation methods and systems
WO2012023986A1 (en) High speed memory systems and methods for designing hierarchical memory systems
KR101509628B1 (ko) 프로세서의 하이 어소시에이티브 캐시 메모리를 위한 scr 매커니즘
CN104424128B (zh) 变长指令字处理器系统和方法
US11836079B2 (en) Storage management apparatus, storage management method, processor, and computer system
WO2015041151A1 (ja) キャッシュメモリシステムおよびプロセッサシステム
US20210173779A1 (en) Method and apparatus for using a storage system as main memory
JP2005346168A (ja) キャッシュメモリ、システムおよびデータ格納方法
CN114328295A (zh) 存储管理装置、处理器、相关装置和相关方法
US6510493B1 (en) Method and apparatus for managing cache line replacement within a computer system
JP2002055879A (ja) マルチポートキャッシュメモリ
US6324632B1 (en) Processing a data stream
CN113722247A (zh) 物理内存保护单元、物理内存权限控制方法和处理器
US20210096745A1 (en) Memory management device capable of managing memory address translation table using heterogeneous memories and method of managing memory address thereby
US20130332665A1 (en) Memory with bank-conflict-resolution (bcr) module including cache
CN114116533B (zh) 利用共享存储器存储数据的方法
JP2003510685A (ja) キャッシュ置換方法および装置
Hassan et al. Multi-sized Output Cache Controllers
US20190188145A1 (en) Cache memory device and fpga including the same

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