CN1149473C - 用32位微处理器中的4字节和8字节页面表表目实现线性地址扩展以及到物理存储器上的映射 - Google Patents
用32位微处理器中的4字节和8字节页面表表目实现线性地址扩展以及到物理存储器上的映射 Download PDFInfo
- Publication number
- CN1149473C CN1149473C CNB008049394A CN00804939A CN1149473C CN 1149473 C CN1149473 C CN 1149473C CN B008049394 A CNB008049394 A CN B008049394A CN 00804939 A CN00804939 A CN 00804939A CN 1149473 C CN1149473 C CN 1149473C
- Authority
- CN
- China
- Prior art keywords
- address
- linear address
- expansion
- microprocessor
- page
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/342—Extension of operand address space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Abstract
一种处理器能够提供高于32位的扩展线性地址。通过将某个线性地址和某个段选择符扩展衔接一起就可以形成一个扩展的线性地址,或者把两个寄存器中的值衔接一起也可以。线性地址向物理地址转换是分级实现的,该转换在分级体系中的所属级别与该线性地址是否是扩展的线性地址有关。
Description
发明领域
本发明涉及微处理器以及计算机系统,尤其是与具有扩展线性地址生成和转化功能的虚拟存储器系统有关。
发明背景
多数微处理器中都使用了虚拟的或请求分页式的存储器方案,当需要时,这类存储器中程序执行环境的各部分程序都被映射到物理存储器上。虚拟存储器设计所允许使用的存储器空间大小要比微处理器中的线性地址空间小得多,而且虚拟存储器还能提供存储器保护机制,以便在多个任务(程序)共同分享同一个物理存储器时不会出现不利的相互影响。
物理存储器是存储器分级系统的一部分,在图1中存储器分级系统被解释为计算机系统的一部分。微处理器102中的第一级高速缓存包括指令高速缓存104和数据高速缓存106。微处理器102通过后部总线110与统一的第二级高速缓存108进行通信。第二级高速缓存108中既包括指令又包括数据,在实际布置中可放在芯片102上。高速缓存104和106包括了存储器分级体系中的第一级,高速缓存108则包括其中的第二级。
图1典型计算机系统中的存储器分级系统的第三级由存储器112指定。微处理器102通过主处理器(前端)总线114和芯片集116与存储器112进行通信。芯片集116也可以提供与图形处理器120进行通信的图形总线118,芯片集116还可作为通向其它总线的桥梁,如外围部件总线122。二级存储器,如磁盘单元124,也作为存储器分级体系中的另一级。
图2说明的是微处理器102中的某些功能单元,其中包括指令和数据高速缓存。在微处理器102中,取数据单元202从指令高速缓存104中取指令,而译码单元206对这些指令进行译码。对于具有CICS(复杂指令集计算机)的计算机结构,译码单元206将复杂指令译成一个或多个微指令。通常,这些微指令定义的是装入—存储类型的计算机结构,因而包括存储器操作的微指令能够简便的进行装入或存储操作。而本发明可适用于其它的计算机结构,例如RISC(缩减指令集计算机)或VLIW(超大指令字)计算机结构。
对于RISC计算机结构,指令并不被译码成微指令。因为本发明既能用于RISC结构又能适用于CICS结构,因此除非另外说明,我们并不区分指令与微指令,而简单地称它们为指令。
多数指令在几种资源操作数上操作,生成结果。它们明确或间接地从其读取值的或需要写入值的资源和目的存储单元进行命名。被命名的是某个逻辑(计算机结构)寄存器,或是存储器中的某个存储单元。将逻辑寄存器重新命名为物理寄存器时会致使指令被无序地执行。在图2中由重命名单元208对寄存器进行重命名,RAT(寄存器分配表)中存储着逻辑寄存器和物理寄存器之间的当前映射。物理寄存器由寄存器文件212指定。
各个逻辑寄存器都在物理寄存器文件212中都具有到物理寄存器上的映射,其中,映射被存储在RAT210中,作为其中的一个表目。RAT210中的表目被逻辑寄存器索引并包含指针指向物理寄存器文件212中的物理寄存器。物理寄存器文件212中的某些寄存器专用于整数,而其它一些则只专用于浮点数,但为了简便起见,图2中并未表示出这种区别。
在重命名指令的过程中,当前RAT提供用于重命名指令资源逻辑寄存器的要求映射,同时也要为指令的目的逻辑寄存器创建新的映射。这一新映射替换了RAT中的原始映射。
被重新命名的指令存放在指令窗口缓冲器216中。所有指令“在过程中”都有一个表目放在按循环缓冲器工作的指令窗口缓冲器216中。指令窗口缓冲器216使存储器消除了多义性,以便存储器引用能正确实现,让指令按原始程序次序依次退出。(对于CISC型计算机结构,当所有组成复杂指令的微指令都退出后才表示复杂指令已经退出。)
对于需要将其结果写入存储器存储单元中的指令而言,数据高速缓存106(存储器分级体系中的一部分)在指令退出的同时进行更新。而对于需要将其结果写入逻辑寄存器的指令而言,因为没有寄存器专用作逻辑寄存器,因此退出时无需进行写操作。(物理寄存器文件212中有物理寄存器中退出指令的执行结果,指令被重命名时目的逻辑寄存器被映射到该物理寄存器上。)
调度程序218将指令调入执行单元220中执行。为了简便起见,仅存储器执行单元224在执行单元220中被明确地指出。装入指令或存储指令被调度程序218分派给AGU(地址生成单元)222用于计算线性地址,存储器执行单元224再将线性地址转换为物理地址并执行装入指令或存储指令。存储器执行单元可将数据发送给前向缓冲器(未表示出来)而不是数据高速缓存106,或者存储器执行单元从前向缓冲器中接收数据,前向缓冲器所存储的对象在指令退出后最终被写入到数据高速缓存106中。调度程序218所执行的调度功能可由(例如)执行Tomasulo逻辑(或其它逻辑)的保存站或记分板实现。执行单元220依据所执行的指令从寄存器文件212中检索数据或是把数据发送给寄存器文件212。
在本发明的其它实施例中,物理寄存器字段212的数据结构中包含的信息内容和指令窗口缓冲器216分别由不同的功能单元识别。例如,重排序缓冲器可以代替指令窗口缓冲器216和物理寄存器文件212,将结果存储到重排序缓冲器中。另外,寄存器文件中的寄存器专用作逻辑寄存器。对于这种类型的实施例,写到逻辑寄存器上的指令执行结果在指令退出后要被写到逻辑寄存器上。
在多数现代计算机系统中,微处理器通过生成一个线性地址访问某个存储器存储单元,但是要通过在地址总线(图1中的总线114)上提供对象的物理地址才能从指定的存储器存储单元上检索该对象。线性地址可能与物理地址相同,在这种情况下不需要进行地址转换。然而,通常在进行线性地址向物理地址转换时都要使用虚拟存储器方案。这种情况下线性地址也被称为虚拟地址。线性地址空间是微处理器生成的所有线性地址的集合,而物理地址空间则是所有物理地址的集合。
对于某些微处理器结构,例如Intel计算机系统的32位微处理器(IA32)(Intel是加州Santa Clara地区的Intel公司注册的商标),还有其它的地址转换类型,实现逻辑地址向线性地址的转换。对于这些类型的计算机系统结构,指令提供逻辑地址的位移量,这些位移量被图2中AGU222转换成线性地址。这种地址转换的附加阶段提供了附加的安全性,即使应用程序代码不能修改高级(操作系统)代码。
图3中说明的是逻辑地址到线性地址上的映射。逻辑地址包括段选择符302a和位移量304。段选择符302a被存储在段寄存器302中,该寄存器中包括了描述符高速缓存302b。段选择符302a指向描述符表306中的段描述符308。描述符表306提供的段描述符被存储在存储器中。段描述符提供段的基地址,正如312上表示的求和一样,位移量加上段描述符提供的基地址就得到了线性地址。除了提供基地址外,段描述符中还包含了各种各样的其它类型信息,如存取权限以及段大小等。基地址、存取权限、段大小和其它信息都被高速缓存在描述符高速缓存302b上。
虚拟存储器或请求分页式存储器系统可以解释为线性地址(虚拟)空间和物理地址空间之间的映射,如图4所示。在虚拟存储器系统中,线性地址空间和物理地址空间都被分隔成连续地址块,如果这些地址块的长度是常数或是任意几种固定的长度,那么它们被称为页。例如,一张典型的页的大小为4K字节。
图4中所示的映射说明了一种普通的两级分层映射,其中包括目录表和页面表。页面目录表和页面表都被存储在物理存储器中,通常它们的大小等于页的大小。页面目录表(PDE)指向物理存储器中的页面表,页面表表目(PTE)指向物理地址中的页。对于图4所示的两级分层映射,线性地址包括目录域402、表域404和偏移域406。目录域是相对PDE的位移量,表域是相对PTE的位移量,位移量域是相对页中存储器存储单元的位移量。
在图4中,页面目录基址寄存器(PDBR)408指向页面目录410的基地址,存储在目录域402中的值加上存储在PDBR 408中的值就可以得到页面目录410中PDE 412的物理地址。然后,PDE 412指向页面表414的基地址,该地址加到表域404存储的值上后得到的值指向页面表414中的PTE 416。PTE 416指向页418的基地址,该页的基地址加上位移量域406所存储的值就得到了物理地址420。从而,线性地址422被映射到物理地址420上。
存储在页面目录和页面表中的存取表目请求存储器总线进行事务处理,按处理器循环时间算这种请求操作的代价很昂贵。然而,由于局部性准则的存在,通过存储线性地址与被称为事务处理后备缓冲器(TLB)的高速缓存中的物理地址之间的目前映射关系,存储器总线的事务处理次数可以减少。对于指令地址和数据地址的TLB可能是分开的。TLB中的表目被线性地址索引,找到后TLB中的命中提供与线性地址相关的物理地址。如果出现丢失,存储器分级体系如图4中指出的那样被访问,有时候称为页面走道,以便获取线性地址向物理地址的转换。
某些IA32微处理器使用几种线性地址向物理地址转换的模式,这里我们考虑三种模式,分别称它们为模式A、B、C。模式A支持32位物理地址空间、4KB大小的页面。模式B支持32位物理地址空间、4KM或4MB大小的页面。对于模式A和模式B,页面和目录表表目都是4字节的。模式C支持物理地址大小为64GB(物理扩展地址)的36位物理地址空间、4KB或2MB大小的页面。对于模式C,页面和目录表表目都是8字节的。对于每种模式,页面和目录表的大小都等于页面的大小。所有模式都用于转换32位线性地址。
模式A在图5中进行说明。线性地址的前12位被用作相对页面帧内物理地址的位移量,线性地址中的下10位被用作进入页面表的位移量,线性地址中的最高10位用作相对页面目录的位移量。例如,在图5中,线性地址的表域506指向页面表504中的PTE 502,PTE 502提供物理地址中的期望页面帧的地址,将该地址与线性地址的位移量508合并在一起就得到了想要对象的物理地址。PDBR寄存器、页面目录表目和页面表表目每个提供32位地址的前20位,以致页面目录和页面表、页面每个被迫调整在4KB范围内。
用于4MB大小页的模式B在图6中说明。(对于4KB大小的页,模式B与模式A类似。)线性地址的前22位提供进入物理4MB页面帧的位移量,线性地址的最高10位提供进入页面表的位移量。注意4MB页使用的模式B只需要一级地址转换。图6页面目录中的PDE提供32位地址的高10位,迫使页面大小调整在4MB范围内。
用于4KB大小页的模式C在图7中说明。这里包括由页面目录指针表(PDPT)702提供的第三级地址转换。PDPT 702中有四个表目,各表目都是8字节的。PDBR 704提供32位地址中的高27位,此32位地址指向PDPT的基地址,迫使PDPT调整在32字节的范围上。PDPT、页面目录和页面表中的各表目都提供36位地址的高24位,以致页面目录、页面表以及页面都被迫调整在4KB范围上。
用于2MB大小页的模式C在图8中说明。这里只需要两级地址转换,但也使用了四个表目PDPT指向页面目录。页面目录中的表目都提供36位地址的高15位,以致页面被迫调整在2MB的范围上。
在图7和图8中说明的模式C用的页面结构允许被同时编址的64GB扩展地址空间高达4GB。为了寻址其它各部分4GB扩展地址空间,在PDBR寄存器中设置了指向不同PDPT的不同表目,或者可更改PDPT中的表目。IA32计算机结构中地址转换的其它详细情况可在PentiumPro的Intel计算机结构开发手册第三卷中查到,该手册可从Inte1公司获得。(PentiumPro是Intel公司的注册商标。)
增加微处理器的线性地址空间可以提供更大的用户空间和系统空间,减少大型物理地址空间的线性地址扩展带来的负担。增加微处理器的字型尺寸,例如从32位增加到64位时,可以提供更大的线性地址空间,这也是工程设计的主要任务。因此增加现有微处理器的线性地址空间而不增加其上的字型尺寸具有经济实用价值。而且有利于使扩大了线性地址空间的微处理器具有逆向相容性,能与为原始大小的线性地址空间设计的代码相容,支持分页结构。
概述
本发明的实施例的目的是为计算机或微处理器提供扩展线性地址空间。在一种实施例中,生成扩展线性地址时其低位部分是在位移量和段选择符的基础上得到的,而高位部分是在段扩展基础上得到的。在另一种实施例中,线性地址是通过将存储在两个寄存器中的值衔接在一起生成的。其它实施例中提供的线性地址向物理地址的转换是通过访问页面目录实现的,因而转换等级与是否存在着线性地址扩展有关。
附图简述
图1提供了现有技术下计算机系统的框图。
图2提供了现有技术下微处理器的框图。
图3提供了现有技术下逻辑地址向线性地址转换的说明。
图4提供了现有技术下线性地址向物理地址转换的说明。
图5提供了现有技术下以4KB分页将32位线性地址向32位物理地址转换的说明。
图6提供了现有技术下以4MB分页将32位线性地址向32位物理地址转换的说明。
图7提供了现有技术下以4KB分页将32位线性地址向36位物理地址转换的说明。
图8提供了现有技术下以2MB分页将32位线性地址向36位物理地址转换的说明。
图9提供的是用于提供扩展线性地址的一个典型实施例。
图10提供的是用于提供扩展线性地址的另一个典型实施例。
图10a提供的是图10的典型实施方案。
图11提供了以4KB分页、4字节表目将42位线性地址向36位物理地址转换的典型实施例。
图12提供了以4MB分页、4字节表目将42位线性地址向36位物理地址转换的典型实施例。
图13提供了以4KB分页、8字节表目将42位线性地址向36位物理地址转换的典型实施例。
图14提供了以2MB分页、8字节表目将42位线性地址向36位物理地址转换的典型实施例。
实施例的详细说明
本发明的实施例提供了一类具有逆向相容性的扩展线性地址空间,用一个或多个操作码指出何时扩展线性地址可被使用。在一种实施例中,操作码指出是否微处理器寄存器中的LAE位(线性地址扩展)位被设置。如果LAE位被设置过,AGU222就将逻辑地址转换成扩展线性地址。
图9说明的实施例用于将逻辑地址转换成扩展线性地址。段寄存器902被扩展得超出了其选择段描述符时的需要,如图9所示。用段选择符904指定的段寄存器902中的一部分被用于选择描述符表906和段描述符908,以提供前面曾讨论过的基地址。位移寄存器910中的位移量值加上基地址就得到了扩展线性地址的低位部分,用912表示。段寄存器902中的另一部分不能用于选择段扩展914指定的段描述符908,而只构成了扩展线性地址的高位部分,用926表示。当914被加到线性地址的低位部分912上时或将914、912衔接到一起时就可以获得扩展线性地址。
在另一实施例中,指令通过它们的资源寄存器提供扩展线性地址,其中的扩展线性地址通过将存储在资源寄存器上的值衔接到一起得到。例如,用于在存储器中实现装入、存储、加以及更换对象操作的新指令被引入到指令集中,这些新指令被译码器206译码成一个或多个微指令,这些微指令通过其操作码中的资源寄存器明确指定一个扩展线性地址。
这一过程在图10的流程图中被说明。在步骤1002中,由被译码的指令命名的资源寄存器中的值都被衔接到一起形成扩展线性地址,只要被译码的指令属于在扩展线性地址空间内操作的指令集。在步骤1004中,当被译码的指令在原始线性地址空间内操作时,将由指令提供的位移量加到由段操作数提供的基地址上就可以获得线性地址。
图10a提供了图10的实现方法。多路复用器1006、1008和1010根据是否存在扩展线性地址的微指令来选择它们的输入(即是否LAEuop线被插入)。如果LAEuop线没有被插入,多路复用器1006和1008分别向AGU222提供即时指令队列和段基地址,以便线性地址可以按传统的方式被计算出来。但是如果LAEuop被插入,那么多路复用器1010将寄存器R1和R2中的内容衔接在一起,以获得扩展线性地址。
一旦生成了扩展线性地址,它就被转换成物理线性地址。本发明的实施例通过将附加等级的转换引入到地址转换分级体系中提供了这种地址转换方式。其中的附加转换等级是有条件使用的,即要求扩展线性地址被指示。
图11说明了以4KB分页进行扩展线性地址转换的实施例。在图11的详细实例中,扩展线性地址是42位的,其中的最高10位用作进入页面目录1102的位移量。页面目录1102的基地址由PDBR 1104提供。Mux(多路复用器)1106在图11中被象征性地用于指出是否扩展线性地址已被指示,然后页面目录1102提供的PDE被用作下一个低级地址转换的基地址,也就是页面目录1108中的基地址。例如,如果LAE位被设置或者线性地址中的高10位不全都为零,那么表示扩展线性地址被指示。如果不支持扩展线性地址,那么图中多路复用器1106就象征性地指出PDBR1104被用于指向页面目录1108的基地址。目录和页面表各表目均是4字节的。PTE 1110提供36位物理地址中的高24位,将其与偏移1112中的12位衔接在一起就提供了36位地址。物理地址空间是64GB。
4MB分页系统中扩展线性地址转换的实施例在图12中说明。页面目录1202根据是否扩展线性地址被指定的条件提供附加的地址转换等级。因为页大小的限制,只有两级页面目录被用于将扩展线性地址转换成物理地址。图12中页面目录的各表目都是4字节的,物理地址空间则是64GB。
在64GB扩展物理地址空间中以4KB分页扩展线性地址转换的一种实施例在图13中说明。与图7中的模式C一样,当扩展线性地址转换未被指示时,PDBR 1302被用于指向PDPT 1304的基地址,它通常被保存在高速缓存中。为了支持扩展线性地址转换,PDBR 1302被用于指向页面目录1306的基地址,扩展线性地址中的地址位30到38(Addr[38:30])提供进入页面目录1306的位移量。请注意页面目录1306中的前四个表目也被高速缓存到PDPT 1304中。图13中的目录和页面各表目都是8字节的,各目录和页面各表目的个数是29=512,因而各个目录和页面都是4KB大小的。因为只有9位用作进入页面目录1306的位移量,所以线性地址中高于位置38的位都没有被用在此实施例中。因而,如果线性地址寄存器是42位的,那么在为42位线性地址提供扩展地址转换时要将最高的三位设置为0。
在64GB的扩展物理地址空间内以2MB分页实现扩展线性地址转换的实施例在图14中说明,其解释是不言自明的。图14中页面目录的各表目都是8字节的,因而像图13中一样高于位置38的线性地址位都是零。
在不背离下面所列的发明权利要求范围的情况下可以对这里公开的实施例实行各种各样的修改。
Claims (8)
1.一种具有扩展线性地址模式的微处理器,该微处理器包括:
译码器,对指令译码以提供位移量;
段寄存器,用于存储段选择符和段扩展;以及
地址生成单元,用于生成扩展线性地址,其中的扩展线性地址包括位移量、段选择符和段扩展;
其中,在处于扩展线性地址模式而一个页面走道把扩展线性地址转换成一个物理地址期间,微处理器利用第一指针来引用第一表作为一个页面目录;另外,在页面走道期间而非处于扩展线性地址模式时,微处理器利用第二指针来引用第二表作为该页面目录。
2.如权利要求1所述的微处理器,其中扩展线性地址包括低位部分和高位部分,其中地址生成单元提供的低位部分是位移量和基地址的和,其中基地址由存储在存储器中的描述符表中的段描述符提供并由段选择符指向,其中高位部分等于段扩展。
3.如权利要求2所述的微处理器,其中微处理器是32位处理器,而扩展线性地址是高于32位的。
4.如权利要求1所述的微处理器,其中至少一部分存储在段寄存器的段扩展被用作一个位移量以指向表中的一个表目,其中该表目包括第一指针,其中第二指针并非任何段扩展部分的一个函数。
5.一种计算机,包括:
系统总线;
与系统总线相连的存储器;以及
与系统总线相连的微处理器,微处理器包括:
译码器,对指令译码以提供位移量;
段寄存器,用于存储段选择符和段扩展;以及
地址生成单元,用于生成扩展线性地址,其中的扩展线性地址包括位移量、段选择符和段扩展;
其中,在处于扩展线性地址模式而一个页面走道把扩展线性地址转换成一个物理地址期间,微处理器利用第一指针来引用第一表作为一个页面目录;以及,在页面走道期间而非处于扩展线性地址模式时,微处理器利用第二指针来引用第二表作为该页面目录。
6.如权利要求5所述的计算机,其中扩展线性地址包括低位部分和高位部分,其中地址生成单元提供的低位部分是位移量和基地址的和,其中基地址由存储在存储器中的描述符表中的段描述符提供并由段选择符指向,其中高位部分等于段扩展。
7.如权利要求5所述的计算机,其中微处理器是32位处理器,而扩展线性地址是高于32位的。
8.如权利要求5所述的微处理器,其中至少一部分存储在段寄存器的段扩展被用作一个位移量以指向表中的一个表目,其中该表目包括第一指针,而第二指针并非任何段扩展部分的一个函数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/267,796 US6349380B1 (en) | 1999-03-12 | 1999-03-12 | Linear address extension and mapping to physical memory using 4 and 8 byte page table entries in a 32-bit microprocessor |
US09/267796 | 1999-03-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1343332A CN1343332A (zh) | 2002-04-03 |
CN1149473C true CN1149473C (zh) | 2004-05-12 |
Family
ID=23020153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008049394A Expired - Fee Related CN1149473C (zh) | 1999-03-12 | 2000-02-29 | 用32位微处理器中的4字节和8字节页面表表目实现线性地址扩展以及到物理存储器上的映射 |
Country Status (8)
Country | Link |
---|---|
US (1) | US6349380B1 (zh) |
EP (1) | EP1188113B1 (zh) |
JP (1) | JP4593792B2 (zh) |
CN (1) | CN1149473C (zh) |
AU (1) | AU3390900A (zh) |
DE (1) | DE60023002T2 (zh) |
HK (1) | HK1043215B (zh) |
WO (1) | WO2000055723A1 (zh) |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6487627B1 (en) * | 1999-12-22 | 2002-11-26 | Intel Corporation | Method and apparatus to manage digital bus traffic |
US6918119B2 (en) * | 2000-04-20 | 2005-07-12 | International Business Machines Corporation | Method and system to improve usage of an instruction window buffer in multi-processor, parallel processing environments |
US6651160B1 (en) * | 2000-09-01 | 2003-11-18 | Mips Technologies, Inc. | Register set extension for compressed instruction set |
US6578122B2 (en) * | 2001-03-01 | 2003-06-10 | International Business Machines Corporation | Using an access key to protect and point to regions in windows for infiniband |
US6671791B1 (en) * | 2001-06-15 | 2003-12-30 | Advanced Micro Devices, Inc. | Processor including a translation unit for selectively translating virtual addresses of different sizes using a plurality of paging tables and mapping mechanisms |
DE10131124A1 (de) * | 2001-06-28 | 2003-01-23 | Infineon Technologies Ag | Konfigurierbare Adressierungsvorrichtung |
EP1278120A1 (de) * | 2001-07-18 | 2003-01-22 | Infineon Technologies AG | Controller und Verfahren zum Ansteuern einer zentralen Verarbeitungseinheit für eine Speicheradressierung |
US6807616B1 (en) * | 2001-08-09 | 2004-10-19 | Advanced Micro Devices, Inc. | Memory address checking in a proccesor that support both a segmented and a unsegmented address space |
US6851040B2 (en) * | 2001-08-15 | 2005-02-01 | Transmeta Corporation | Method and apparatus for improving segmented memory addressing |
FR2831289B1 (fr) * | 2001-10-19 | 2004-01-23 | St Microelectronics Sa | Microprocesseur disposant d'un espace adressable etendu |
US7383419B2 (en) * | 2002-05-24 | 2008-06-03 | Nxp B.V. | Address generation unit for a processor |
US7299338B2 (en) * | 2002-12-04 | 2007-11-20 | Agere Systems Inc. | Vector indexed memory unit and method |
US7240179B1 (en) * | 2004-12-13 | 2007-07-03 | Nvidia Corporation | System, apparatus and method for reclaiming memory holes in memory composed of arbitrarily-sized memory devices |
US7707385B2 (en) * | 2004-12-14 | 2010-04-27 | Sony Computer Entertainment Inc. | Methods and apparatus for address translation from an external device to a memory of a processor |
US7743233B2 (en) * | 2005-04-05 | 2010-06-22 | Intel Corporation | Sequencer address management |
US7644251B2 (en) * | 2005-12-19 | 2010-01-05 | Sigmatel, Inc. | Non-volatile solid-state memory controller |
US7725656B1 (en) | 2006-10-18 | 2010-05-25 | Guillermo Rozas | Braided set associative caching techniques |
US9244855B2 (en) | 2007-12-31 | 2016-01-26 | Intel Corporation | Method, system, and apparatus for page sizing extension |
US8635415B2 (en) * | 2009-09-30 | 2014-01-21 | Intel Corporation | Managing and implementing metadata in central processing unit using register extensions |
KR20120088783A (ko) * | 2009-10-30 | 2012-08-08 | 인텔 코오퍼레이션 | 계층적 가속 구조를 사용한 그래픽 렌더링 |
GB2478727B (en) | 2010-03-15 | 2013-07-17 | Advanced Risc Mach Ltd | Translation table control |
US8505032B2 (en) | 2010-06-23 | 2013-08-06 | International Business Machines Corporation | Operating system notification of actions to be taken responsive to adapter events |
US8656228B2 (en) | 2010-06-23 | 2014-02-18 | International Business Machines Corporation | Memory error isolation and recovery in a multiprocessor computer system |
US8683108B2 (en) | 2010-06-23 | 2014-03-25 | International Business Machines Corporation | Connected input/output hub management |
US8645606B2 (en) | 2010-06-23 | 2014-02-04 | International Business Machines Corporation | Upbound input/output expansion request and response processing in a PCIe architecture |
US8572635B2 (en) | 2010-06-23 | 2013-10-29 | International Business Machines Corporation | Converting a message signaled interruption into an I/O adapter event notification |
US8504754B2 (en) | 2010-06-23 | 2013-08-06 | International Business Machines Corporation | Identification of types of sources of adapter interruptions |
US8650335B2 (en) | 2010-06-23 | 2014-02-11 | International Business Machines Corporation | Measurement facility for adapter functions |
US9342352B2 (en) | 2010-06-23 | 2016-05-17 | International Business Machines Corporation | Guest access to address spaces of adapter |
US8615622B2 (en) | 2010-06-23 | 2013-12-24 | International Business Machines Corporation | Non-standard I/O adapters in a standardized I/O architecture |
US8626970B2 (en) | 2010-06-23 | 2014-01-07 | International Business Machines Corporation | Controlling access by a configuration to an adapter function |
US8650337B2 (en) | 2010-06-23 | 2014-02-11 | International Business Machines Corporation | Runtime determination of translation formats for adapter functions |
US8677180B2 (en) | 2010-06-23 | 2014-03-18 | International Business Machines Corporation | Switch failover control in a multiprocessor computer system |
US8635430B2 (en) | 2010-06-23 | 2014-01-21 | International Business Machines Corporation | Translation of input/output addresses to memory addresses |
US8416834B2 (en) | 2010-06-23 | 2013-04-09 | International Business Machines Corporation | Spread spectrum wireless communication code for data center environments |
US9195623B2 (en) | 2010-06-23 | 2015-11-24 | International Business Machines Corporation | Multiple address spaces per adapter with address translation |
US8566480B2 (en) | 2010-06-23 | 2013-10-22 | International Business Machines Corporation | Load instruction for communicating with adapters |
US8549182B2 (en) | 2010-06-23 | 2013-10-01 | International Business Machines Corporation | Store/store block instructions for communicating with adapters |
US8645767B2 (en) | 2010-06-23 | 2014-02-04 | International Business Machines Corporation | Scalable I/O adapter function level error detection, isolation, and reporting |
US8918573B2 (en) | 2010-06-23 | 2014-12-23 | International Business Machines Corporation | Input/output (I/O) expansion response processing in a peripheral component interconnect express (PCIe) environment |
US8417911B2 (en) | 2010-06-23 | 2013-04-09 | International Business Machines Corporation | Associating input/output device requests with memory associated with a logical partition |
US8478922B2 (en) | 2010-06-23 | 2013-07-02 | International Business Machines Corporation | Controlling a rate at which adapter interruption requests are processed |
US8639858B2 (en) | 2010-06-23 | 2014-01-28 | International Business Machines Corporation | Resizing address spaces concurrent to accessing the address spaces |
US8615645B2 (en) | 2010-06-23 | 2013-12-24 | International Business Machines Corporation | Controlling the selectively setting of operational parameters for an adapter |
US8510599B2 (en) | 2010-06-23 | 2013-08-13 | International Business Machines Corporation | Managing processing associated with hardware events |
US9213661B2 (en) | 2010-06-23 | 2015-12-15 | International Business Machines Corporation | Enable/disable adapters of a computing environment |
US8621112B2 (en) | 2010-06-23 | 2013-12-31 | International Business Machines Corporation | Discovery by operating system of information relating to adapter functions accessible to the operating system |
US8671287B2 (en) | 2010-06-23 | 2014-03-11 | International Business Machines Corporation | Redundant power supply configuration for a data center |
US8468284B2 (en) | 2010-06-23 | 2013-06-18 | International Business Machines Corporation | Converting a message signaled interruption into an I/O adapter event notification to a guest operating system |
US8745292B2 (en) | 2010-06-23 | 2014-06-03 | International Business Machines Corporation | System and method for routing I/O expansion requests and responses in a PCIE architecture |
GB2485602A (en) * | 2010-11-22 | 2012-05-23 | F Secure Corp | Executing a program with a smaller address size than the processor on which it is executing |
CN102103543B (zh) * | 2011-02-22 | 2012-07-04 | 哈尔滨工业大学 | 利用处理器gpio管脚扩展m模块地址空间的方法 |
US9331855B2 (en) | 2011-07-01 | 2016-05-03 | Intel Corporation | Apparatus, system, and method for providing attribute identity control associated with a processor |
US10417001B2 (en) * | 2012-12-27 | 2019-09-17 | Intel Corporation | Physical register table for eliminating move instructions |
US9507599B2 (en) | 2013-07-22 | 2016-11-29 | Globalfoundries Inc. | Instruction set architecture with extensible register addressing |
US9715449B2 (en) * | 2014-03-31 | 2017-07-25 | International Business Machines Corporation | Hierarchical translation structures providing separate translations for instruction fetches and data accesses |
US9734083B2 (en) | 2014-03-31 | 2017-08-15 | International Business Machines Corporation | Separate memory address translations for instruction fetches and data accesses |
US9824021B2 (en) | 2014-03-31 | 2017-11-21 | International Business Machines Corporation | Address translation structures to provide separate translations for instruction fetches and data accesses |
US10146699B2 (en) | 2015-04-30 | 2018-12-04 | Hewlett Packard Enterprise Development Lp | Mapping apertures of different sizes |
US9990282B2 (en) | 2016-04-27 | 2018-06-05 | Oracle International Corporation | Address space expander for a processor |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3479356D1 (en) | 1983-12-23 | 1989-09-14 | Hitachi Ltd | A data processor with control of the significant bit lenghts of general purpose registers |
JPS60134937A (ja) * | 1983-12-23 | 1985-07-18 | Hitachi Ltd | アドレス拡張装置 |
US4796177A (en) * | 1985-04-30 | 1989-01-03 | Fujitsu Limited | Address extension system |
JPS63305443A (ja) * | 1987-06-08 | 1988-12-13 | Hitachi Ltd | 仮想空間群管理方法 |
US5249280A (en) * | 1990-07-05 | 1993-09-28 | Motorola, Inc. | Microcomputer having a memory bank switching apparatus for accessing a selected memory bank in an external memory |
US5423013A (en) | 1991-09-04 | 1995-06-06 | International Business Machines Corporation | System for addressing a very large memory with real or virtual addresses using address mode registers |
US5381537A (en) * | 1991-12-06 | 1995-01-10 | International Business Machines Corporation | Large logical addressing method and means |
US5617554A (en) * | 1992-02-10 | 1997-04-01 | Intel Corporation | Physical address size selection and page size selection in an address translator |
US5664139A (en) * | 1994-05-16 | 1997-09-02 | Compaq Computer Corporation | Method and a computer system for allocating and mapping frame buffers into expanded memory |
US5566308A (en) | 1994-05-25 | 1996-10-15 | National Semiconductor Corporation | Processor core which provides a linear extension of an addressable memory space |
US5963984A (en) * | 1994-11-08 | 1999-10-05 | National Semiconductor Corporation | Address translation unit employing programmable page size |
US5612911A (en) * | 1995-05-18 | 1997-03-18 | Intel Corporation | Circuit and method for correction of a linear address during 16-bit addressing |
US5895503A (en) * | 1995-06-02 | 1999-04-20 | Belgard; Richard A. | Address translation method and mechanism using physical address information including during a segmentation process |
TW382090B (en) * | 1997-08-13 | 2000-02-11 | United Microeletronics Corp | System and method for converting computer addresses |
US6009510A (en) * | 1998-02-06 | 1999-12-28 | Ip First Llc | Method and apparatus for improved aligned/misaligned data load from cache |
US6108773A (en) * | 1998-03-31 | 2000-08-22 | Ip-First, Llc | Apparatus and method for branch target address calculation during instruction decode |
-
1999
- 1999-03-12 US US09/267,796 patent/US6349380B1/en not_active Expired - Lifetime
-
2000
- 2000-02-29 DE DE60023002T patent/DE60023002T2/de not_active Expired - Lifetime
- 2000-02-29 CN CNB008049394A patent/CN1149473C/zh not_active Expired - Fee Related
- 2000-02-29 JP JP2000605886A patent/JP4593792B2/ja not_active Expired - Fee Related
- 2000-02-29 EP EP00912127A patent/EP1188113B1/en not_active Expired - Lifetime
- 2000-02-29 AU AU33909/00A patent/AU3390900A/en not_active Abandoned
- 2000-02-29 WO PCT/US2000/005420 patent/WO2000055723A1/en active IP Right Grant
-
2002
- 2002-06-20 HK HK02104595.9A patent/HK1043215B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
JP4593792B2 (ja) | 2010-12-08 |
DE60023002D1 (de) | 2006-02-16 |
WO2000055723A1 (en) | 2000-09-21 |
DE60023002T2 (de) | 2006-07-20 |
US6349380B1 (en) | 2002-02-19 |
JP2002539555A (ja) | 2002-11-19 |
EP1188113B1 (en) | 2005-10-05 |
AU3390900A (en) | 2000-10-04 |
HK1043215A1 (en) | 2002-09-06 |
EP1188113A1 (en) | 2002-03-20 |
HK1043215B (zh) | 2006-04-28 |
CN1343332A (zh) | 2002-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1149473C (zh) | 用32位微处理器中的4字节和8字节页面表表目实现线性地址扩展以及到物理存储器上的映射 | |
US20210374069A1 (en) | Method, system, and apparatus for page sizing extension | |
CN1153145C (zh) | 预加载不同缺省地址转换属性的方法和装置 | |
Jacob et al. | Virtual memory in contemporary microprocessors | |
Deutsch et al. | Efficient implementation of the Smalltalk-80 system | |
US8806101B2 (en) | Metaphysical address space for holding lossy metadata in hardware | |
CN101315614B (zh) | 支持页属性的虚拟地址至物理地址的转换 | |
EP0508577A1 (en) | Address translation mechanism | |
JPH0887451A (ja) | アドレス変換を管理する方法およびアドレス変換マネージャ | |
JPS62184551A (ja) | コンピユ−タア−キテクチヤ | |
GB2478727A (en) | Memory address translation with a page size and a page table size set to the same power of two | |
CN112540939A (zh) | 存储管理装置、存储管理方法、处理器和计算机系统 | |
US20130297877A1 (en) | Managing buffer memory | |
WO2000038063A2 (en) | Method and system for memory allocation in a multiprocessing environment | |
US20130159624A1 (en) | Storing the most significant and the least significant bytes of characters at non-contiguous addresses | |
US6686920B1 (en) | Optimizing the translation of virtual addresses into physical addresses using a pipeline implementation for least recently used pointer | |
Vijaykrishnan et al. | Supporting object accesses in a Java processor | |
WO2003102784A2 (en) | Method and system for compression of address tags in memory structures | |
Liedtke et al. | Guarded page tables on the MIPS R4600 | |
JPH10301848A (ja) | 多重ページサイズを有する仮想記憶装置 | |
CN114840332A (zh) | 页交换方法、装置和电子设备 | |
Williams | The MUSHROOM machine-an architecture for symbolic processing | |
KR100343940B1 (ko) | 트랜슬레이션 룩어헤드 버퍼 예측 비트를 이용한 쓰기동작시의 캐쉬 얼리어싱 방지 | |
Russell et al. | An object-based processor cache. | |
Russell et al. | DAIS: An object-addressed processor cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20040512 Termination date: 20170229 |
|
CF01 | Termination of patent right due to non-payment of annual fee |