CN110007966A - 一种降低内存读取乱序的方法 - Google Patents
一种降低内存读取乱序的方法 Download PDFInfo
- Publication number
- CN110007966A CN110007966A CN201910286350.1A CN201910286350A CN110007966A CN 110007966 A CN110007966 A CN 110007966A CN 201910286350 A CN201910286350 A CN 201910286350A CN 110007966 A CN110007966 A CN 110007966A
- Authority
- CN
- China
- Prior art keywords
- logic core
- instruction
- program point
- sequence number
- point sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 523
- 238000000034 method Methods 0.000 title claims abstract description 129
- 230000008569 process Effects 0.000 claims abstract description 34
- 230000003111 delayed effect Effects 0.000 claims description 62
- 238000007726 management method Methods 0.000 claims description 52
- 238000004321 preservation Methods 0.000 claims description 35
- 230000005055 memory storage Effects 0.000 claims description 33
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 17
- 238000001514 detection method Methods 0.000 claims description 13
- 238000004080 punching Methods 0.000 claims description 13
- 238000000151 deposition Methods 0.000 claims description 6
- 230000006399 behavior Effects 0.000 claims description 5
- 230000003139 buffering effect Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 238000004148 unit process Methods 0.000 claims description 3
- 230000009467 reduction Effects 0.000 abstract description 4
- 230000000694 effects Effects 0.000 description 5
- 238000003032 molecular docking Methods 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 4
- 230000001934 delay Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or 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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种降低内存读取乱序的方法,包括:设置内存操作程序点缓存及内存操作程序点缓存处理工作相关辅助零件;产生该一个逻辑内核的指令的自身的程序点序列号,将该一个逻辑内核的指令按自身的程序点序列号存入对应的内存操作程序点缓存;从对应的内存操作程序点缓存中取指令。本发明的降低内存读取乱序所带来的重新取指的延迟的方法,可以不用重新重命名及不用重新地址寻址计算,可以降低读写冲突后的重装损失。
Description
技术领域
本发明涉及内存读取技术领域,特别涉及一种降低内存读取乱序的方法。
背景技术
读写冲突,就是越过内存存储指令的内存加载指令的内存操作区域与所越过的内存存储指令的内存操作区域有出现重叠。读写冲突后会造成重装损失,会造成读取乱序。
因此,急需提供一种能够降低内存读取乱序冲突损失的方法。
发明内容
本发明针对上述现有技术中存在的问题,提出一种降低内存读取乱序的方法,按程序顺序取指顺序寻址,可以不用重新重命名及不用重新地址寻址计算,则是以序列号的形式作为地址来寻址;通过缓存法降低内存加载指令越过内存存储指令后要重装的延迟,可以降低读写冲突后的重装损失。
为解决上述技术问题,本发明是通过如下技术方案实现的:
本发明提供一种降低内存读取乱序的方法,其包括以下步骤:
S1:该一个逻辑内核设置指令行以及内存操作程序点缓存以及缓存结束寄存器以及开启寄存器及读取记录器以及写入后端寄存器以及内存操作程序点缓存处理工作相关辅助零件及该一个逻辑内核的管理系统及该一个逻辑内核的系统,所述的内存操作程序点缓存处理工作相关辅助零件有则指令行以及缓存结束寄存器以及开启寄存器及读取记录器以及写入后端寄存器,所述的指令行称为内存操作程序点缓存存入缓冲;
S2:产生所述该一个逻辑内核的指令的自身的程序点序列号,将所述该一个逻辑内核的指令按自身的程序点序列号存入对应该一个逻辑内核设置的内存操作程序点缓存的位置中;
S3:从该一个逻辑内核设置的内存操作程序点缓存中取指令。
较佳地,所述步骤S2还包括:检测所述该一个逻辑内核的指令存入的内存操作程序点缓存的位置,然后将该一个逻辑内核的指令的相关标记及各种编号,存入内存操作程序点缓存的该一个逻辑内核的指令所存入的位置中;对应地,
所述步骤S3还包括:从该一个逻辑内核设置的内存操作程序点缓存中取指令的时候,同时将所存入的位置中所存的相关标记及各种编号一同取走。
较佳地,所述步骤S2具体包括:
值得一提的是,该指令属于的该指令本身的指令。
S100:事前设置步骤01,检测该一个逻辑内核的指令是否就是在该一个逻辑内核设置的内存操作程序点缓存没有指令的情况下该一个逻辑内核处理的该一个逻辑内核的指令的第一个指令,若是,进入步骤S101,事前设置步骤02,若否,进入步骤S102,执行存入程序点序列号00;
S101:事前设置步骤02,设定一个甲程序点序列号,然后给该一个逻辑内核的指令本身一个设定的甲程序点序列号,并且本身的指令是作为其本身采用的程序点序列号的指令,并该一个逻辑内核的指令本身的程序点序列号以作为一个地址用于该一个逻辑内核设置的内存操作程序点缓存的寻址,然后进入步骤S106;
S102:执行存入程序点序列号00,检测该一个逻辑内核是否出现该重装,判断该一个逻辑内核是否出现该重装:若否,进入步骤S103,执行存入程序点序列号01,若是,进入步骤S104,执行存入程序点序列号02;
S103:执行存入程序点序列号01,然后该一个逻辑内核的指令先采用顺序执行中该一个逻辑内核的指令的上一个指令的程序点序列号加一后只保留某范围数位的程序点序列号作为本身的程序点序列号,并且本身的指令是作为其本身采用的程序点序列号的指令,并该一个逻辑内核的指令本身的程序点序列号以作为一个地址用于该一个逻辑内核设置的内存操作程序点缓存的寻址,进入步骤S106;
S104:执行存入程序点序列号02,检测该一个逻辑内核的指令是否该重装的重新装入的程序的第一个指令,若否,进入步骤S103,执行存入程序点序列号01,若是,进入步骤S105;
S105:该一个逻辑内核的指令则采用该重装未更正前的第一个指令的程序点序列号作为本身的程序点序列号,并且本身的指令是作为其本身采用的程序点序列号的指令,并该一个逻辑内核的指令本身的程序点序列号以作为一个地址用于该一个逻辑内核设置的内存操作程序点缓存的寻址,进入步骤S106;
S106:取存安排,该一个逻辑内核的指令经重命名后从处理器流水线的重命名单元上取已重命名的该一个逻辑内核的指令及已重命名的该一个逻辑内核的指令的一切资料,然后取下的该一个逻辑内核的指令及该一个逻辑内核的指令的各种编号及该一个逻辑内核的指令的相关标记和该一个逻辑内核的指令的程序点序列号按本身属于的指令本身的程序点序列号存入本身属于的指令本身的程序点序列号所对应的该一个逻辑内核设置的内存操作程序点缓存位置中,以此进行将该一个逻辑内核的指令放入该一个逻辑内核设置的内存操作程序点缓存系统中,并安排取下的该一个逻辑内核的指令及该一个逻辑内核的指令的各种编号及该一个逻辑内核的指令的相关标记和该一个逻辑内核的指令的程序点序列号先标记为该一个逻辑内核的指令的方式在下一时钟移走到指令行第一行,并保存移到指令行第一行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S107;
S107:将该一个逻辑内核的指令的一切资料移到指令行第一行时的时钟设为该一个逻辑内核的指令第一行时钟,移到第一行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第一行时钟的下一时钟移走到指令行第二行,并指令行第一行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第二行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S108;
S108:将该一个逻辑内核的指令的一切资料移到指令行第二行时的时钟设为该一个逻辑内核的指令第二行时钟,移到第二行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第二行时钟的下一时钟移走到指令行第三行,并指令行第二行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第三行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S109;
S109:将该一个逻辑内核的指令的一切资料移到指令行第三行时的时钟设为该一个逻辑内核的指令第三行时钟,移到第三行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第三行时钟的下一时钟移走到指令行第四行,并指令行第三行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第四行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S110;
S110:将该一个逻辑内核的指令的一切资料移到指令行第四行时的时钟设为该一个逻辑内核的指令第四行时钟,移到第四行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第四行时钟的下一时钟移走到指令行第五行,并指令行第四行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第五行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S111;
S111:将该一个逻辑内核的指令的一切资料移到指令行第五行时的时钟设为该一个逻辑内核的指令第五行时钟,移到第五行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第五行时钟的下一时钟移走到指令行第六行,并指令行第五行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第六行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S112;
S112:指令行第六行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序。
值得一提的是,内存操作程序点缓存存入缓冲称为指令行,
值得一提的是存入内存操作程序点缓存存入指令行后才正式存入内存操作程序点缓存。
较佳地,所述步骤S2具体包括:
S200:事前设置步骤11,检测该一个逻辑内核的指令是否就是在该一个逻辑内核设置的内存操作程序点缓存没有指令的情况下该一个逻辑内核处理的该一个逻辑内核的指令的第一个指令,若是,进入步骤S201,事前设置步骤12,若否,进入步骤S202,执行存入程序点序列号10;
S201:事前设置步骤12,设定一个甲程序点序列号,然后给该一个逻辑内核的指令本身一个设定的甲程序点序列号,并且本身的指令是作为其本身采用的程序点序列号的指令,并该一个逻辑内核的指令本身的程序点序列号以作为一个地址用于该一个逻辑内核设置的内存操作程序点缓存的寻址,然后进入步骤S206;
S202:执行存入程序点序列号10,检测该一个逻辑内核是否出现该重装,判断该一个逻辑内核是否出现该重装:若否,进入步骤S203,执行存入程序点序列号11,若是,进入步骤S204,执行存入程序点序列号12;
S203:执行存入程序点序列号11,然后该一个逻辑内核的指令先采用顺序执行中该一个逻辑内核的指令的上一个指令的程序点序列号加一后只保留某范围数位的程序点序列号作为本身的程序点序列号,并且本身的指令是作为其本身采用的程序点序列号的指令,并该一个逻辑内核的指令本身的程序点序列号以作为一个地址用于该一个逻辑内核设置的内存操作程序点缓存的寻址,进入步骤S206;
S204:执行存入程序点序列号12,检测该一个逻辑内核的指令是否该重装的重新装入的程序的第一个指令,若否,进入步骤S203,执行存入程序点序列号11,若是,进入步骤S205;
S205:该一个逻辑内核的指令则采用该重装未更正前的第一个指令的程序点序列号作为本身的程序点序列号,并且本身的指令是作为其本身采用的程序点序列号的指令,并该一个逻辑内核的指令本身的程序点序列号以作为一个地址用于该一个逻辑内核设置的内存操作程序点缓存的寻址,进入步骤S206;
S206:取存安排,该一个逻辑内核的指令经解码后从处理器流水线的解码单元与已解码的指令缓存取指单元上取那些从非内存操作程序点缓存取下的已解码的该一个逻辑内核的指令及已解码的该一个逻辑内核的指令的一切资料,然后取下的该一个逻辑内核的指令及该一个逻辑内核的指令的各种编号及该一个逻辑内核的指令的相关标记和该一个逻辑内核的指令的程序点序列号按本身属于的指令本身的程序点序列号存入本身属于的指令本身的程序点序列号所对应的该一个逻辑内核设置的内存操作程序点缓存位置中,以此进行将该一个逻辑内核的指令放入该一个逻辑内核设置的内存操作程序点缓存系统中,并安排取下的该一个逻辑内核的指令及该一个逻辑内核的指令的各种编号及该一个逻辑内核的指令的相关标记和该一个逻辑内核的指令的程序点序列号先标记为该一个逻辑内核的指令的方式在下一时钟移走到指令行第一行,并保存移到指令行第一行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S207;
S207:将该一个逻辑内核的指令的一切资料移到指令行第一行时的时钟设为该一个逻辑内核的指令第一行时钟,移到第一行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第一行时钟的下一时钟移走到指令行第二行,并指令行第一行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第二行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S208;
S208:将该一个逻辑内核的指令的一切资料移到指令行第二行时的时钟设为该一个逻辑内核的指令第二行时钟,移到第二行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第二行时钟的下一时钟移走到指令行第三行,并指令行第二行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第三行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S209;
S209:将该一个逻辑内核的指令的一切资料移到指令行第三行时的时钟设为该一个逻辑内核的指令第三行时钟,移到第三行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第三行时钟的下一时钟移走到指令行第四行,并指令行第三行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第四行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S210;
S210:将该一个逻辑内核的指令的一切资料移到指令行第四行时的时钟设为该一个逻辑内核的指令第四行时钟,移到第四行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第四行时钟的下一时钟移走到指令行第五行,并指令行第四行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第五行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S211;
S211:将该一个逻辑内核的指令的一切资料移到指令行第五行时的时钟设为该一个逻辑内核的指令第五行时钟,移到第五行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第五行时钟的下一时钟移走到指令行第六行,并指令行第五行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第六行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S212;
S212:指令行第六行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序。
指令行的各个行指的是那些各个行,指令行的各个行各当中的各个行有以下的行就是指令行第一行、指令行第二行、指令行第三行、指令行第四行、指令行第五行、指令行第六行、
指令行的有多个指令行行位置,指令行的各个指令行行位置有那些指令行行位置,则指令行有多少个指令行行位置,指令行中有六个指令行行位置,第一个指令行行位置就是指令行第一行、第二个指令行行位置就是指令行第二行、第三个指令行行位置就是指令行第三行、第四个指令行行位置就是指令行第四行、第五个指令行行位置就是指令行第五行、第六个指令行行位置就是指令行第六行、
值得一提各种编号中各种编号是包括了程序点序列号及其它编号。
值得一提指令采用程序点序列号从该一个逻辑内核设置的内存操作程序点缓存进行存取时只采用某个范围的数位,而全部范围的数位是保存在本身指令的程序点序列号所对应的该一个逻辑内核设置的内存操作程序点缓存位置
值得一提的是,冲突就是越过内存存储指令的内存加载指令的内存操作区域与所越过的内存存储指令的内存操作区域有出现重叠的这一现象。
值得一提的是,内存操作区域指的不是指令处理的寄存器区域,而是内存区域。
值得一提的是本发明是代替发生冲突要取指令时所取指令的工作。
值得一提的是顺序中排最后的一个的程序点序列号的下一个程序点序列号就是顺序中排第一的程序点序列号。
值得一提的是程序点序列号在该一个逻辑内核设置的内存操作程序点缓存有对应的位置
值得一提的是一个逻辑内核设置一个内存操作程序点缓存,该逻辑内核的指令存入该线程的内存操作程序点缓存。
如果一个物理内核只有一个线程,那么就只有一个逻辑内核,
如果一个物理内核有多个线程,那么一个线程一个逻辑内核。
如果一个物理内核有多个线程代表有多个逻辑内核并每个线程本身有一个逻辑内核。
值得一提的是缓存没有指令意思是缓存除空指令外没有其它指令,或缓存没有输入到指令,或缓存的指令全部清除掉。
值得一提的是该一个逻辑内核的指令的该一个逻辑内核就是处理该一个逻辑内核的指令的逻辑内核。
值得一提的是该线程该一个逻辑内核就是处理该线程的逻辑内核。
值得一提的是内存操作程序点缓存除寻址不同外与其它缓存没有什么不同。
值得一提的是该一个逻辑内核的指令对应的该一个逻辑内核是指处理该一个逻辑内核的指令的那一个逻辑内核。
值得一提的是该一个逻辑内核的指令对应的内存操作程序点缓存,是指该一个逻辑内核的指令对应的该一个逻辑内核所设置的内存操作程序点缓存。
值得一提的是,甲范围、乙范围、丙范围、辛范围、丁范围、戊范围可以根据需要自行设定。
值得一提的是,该一个逻辑内核的指令该一个逻辑内核,就是处理该一个逻辑内核的指令的一个逻辑内核。
值得一提的是,程序点序列号不是指令。
值得一提的是,指令本身的程序点序列号之后的程序点序列号是指指令本身的程序点序列号的这一个程序点序列号之后的程序点序列号。
较佳地,所述步骤S3还包括:
S301:检测指令行第一行有没有该一个逻辑内核的指令,若指令行第一行有该一个逻辑内核的指令,进入步骤S302,若指令行第一行没有该一个逻辑内核的指令,进入步骤S303;
S302:先删除该一个逻辑内核的缓存写入后端寄存器保存的程序点序列号,以前的该一个逻辑内核的缓存写入后端寄存器的程序点序列号不作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后找指令行第一行顺序执行的最后一个的该一个逻辑内核的指令,然后以取找到的指令行第一行顺序执行的最后一个的该一个逻辑内核的指令的程序点序列号保存到该一个逻辑内核的缓存写入后端寄存器中,然后以该一个逻辑内核的缓存写入后端寄存器保存的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,进入步骤S304;
S303:以该一个逻辑内核的缓存写入后端寄存器保存的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,进入步骤S304;
S304:检测该一个逻辑内核是否出现内存加载操作与该内存存储操作发生冲突并该一个逻辑内核出现加载冒险执行的冲突的重装的条件,若是,进入步骤S306,若否,进入步骤S305;
S305:检测该一个逻辑内核是否出现加载冒险执行的非冲突的重装的条件,若是,进入步骤S307,若否,进入步骤S312;
S306:检测该一个逻辑内核是否出现加载冒险执行的非冲突的重装的条件,若是,进入步骤S307,若否,进入步骤S308;
S307:暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,然后以前的该一个逻辑内核的缓存写入后端寄存器的程序点序列号不作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后以该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后进行清除所述的非延迟系统的流水线中该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要清除的该一个逻辑内核的指令及进行该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后向非内存操作程序点缓存取该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要取的该一个逻辑内核的指令,然后在下一时钟进入步骤S301;
S308:以前的该一个逻辑内核的该内存存储操作的有冲突的程序点序列号不作为该一个逻辑内核的该内存存储操作的有冲突的程序点序列号,然后并将该一个逻辑内核检测出的出现的冲突的重装的条件下该冲突的重装的重装点的未更正前的第一个指令的程序点序列号设置为该一个逻辑内核的该内存存储操作的有冲突的程序点序列号,然后在该一个逻辑内核的该内存存储操作的有冲突的程序点序列号与该一个逻辑内核的缓存写入后端寄存器保存的程序点序列号相差的值上设定甲范围,然后进入步骤S309;
S309:检测该一个逻辑内核的该内存存储操作的有冲突的程序点序列号与该一个逻辑内核的缓存写入后端寄存器保存的程序点序列号相差的值是否不在设定的甲范围,若否,进入步骤S310,若是,进入步骤S311;
S310:暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,然后将该一个逻辑内核检测出的出现的冲突的重装的条件的相关冲突重装的内容发送到该一个逻辑内核的管理系统,然后该一个逻辑内核的管理系统接收该冲突的重装的条件的相关冲突重装的内容,并该一个逻辑内核在现在发送该一个逻辑内核出现的该冲突的重装的条件下的该冲突的重装的相关的重装的取指的开头的地址到各个非内存操作程序点缓存,然后以前的该一个逻辑内核的缓存写入后端寄存器的程序点序列号不作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后以该一个逻辑内核出现的该冲突的重装的条件下的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后进行清除所述的非延迟系统的流水线中该一个逻辑内核出现的该冲突的重装的条件下的该冲突的重装所要清除的该一个逻辑内核的指令及进行该一个逻辑内核出现的该冲突的重装的条件下的该冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后进行向非内存操作程序点缓存取该一个逻辑内核出现的该冲突的重装的条件下的该冲突的重装所要取的该一个逻辑内核的指令,然后在下一时钟进入步骤S301;
S311:该一个逻辑内核保存起点标记,然后将该一个逻辑内核的该内存存储操作的有冲突的程序点序列号及该一个逻辑内核检测出的出现的冲突的重装的条件的相关冲突重装的内容发送到该一个逻辑内核设置的内存操作程序点缓存,然后该一个逻辑内核设置的内存操作程序点缓存接收该一个逻辑内核的该内存存储操作的有冲突的程序点序列号及该一个逻辑内核检测出的出现的冲突的重装的条件的相关冲突重装的内容,然后在下一时钟进入步骤S301;
S312:然后处理该一个逻辑内核的取指与非延迟系统的流水线的该一个逻辑内核工作,然后在下一时钟进入步骤S301;
步骤S301~S311提供开始取指的程序点序列号,通过程序点序列号提供了一种可以让一个静态缓存中取指的办法。并且,步骤S301~S312提供了内存作程序点缓存如何根据冲突指令的执行情况进行取指的,可以解决当在发生冲突后如何取指的问题。
值得一提的是该一个逻辑内核内设置的内存操作程序点缓存称为该一个逻辑内核设置的内存操作程序点缓存。除内存操作程序点缓存外的缓存称为非内存操作程序点缓存
值得一提的是甲范围的作用限制确认取的指令是否可以向该一个逻辑内核设置的内存操作程序点缓存及指令行中取指,如果在甲范围则表示可以向该一个逻辑内核设置的内存操作程序点缓存及指令行中取指。
值得一提的是,线程从非内存操作程序点缓存中取指令,则是非内存操作程序点缓存取指端从非内存操作程序点缓存取的指令。
值得一提的是,错误分支的程序点序列号与程序点序列号相差设定一个范围,可以根据需要自行设定。
值得一提的是,该一个逻辑内核的指令如果采用该程序点序列号就是该程序点序列号的指令
值得一提的是,内存加载操作所对应的指令指的是,内存加载操作对应负责处理其本身的内存加载操作的指令。
值得一提的是,内存操作程序点缓存与指令行的流水线的以上流水线当中不包括内存操作程序点缓存与指令行与内存操作程序点缓存的写入单元与指令行的写入单元的部分后的流水线的称为上流水线。指令必须经过内存操作程序点缓存与指令行才能进入的那些流水线称为必经流水线,除去必经流水线及内存操作程序点缓存与指令行及内存操作程序点缓存的写入单元及指令行的写入单元后的上流水线的以下的流水线部分称为下流水线。而内存操作程序点缓存与指令行取指部分到下流水线的第一级之间的流水线中不包括下流水线的第一级的这些流水线称为内存操作程序点缓存取指流水线,内存操作程序点缓存取指流水线的最后一级流水线称为内存操作程序点缓存的取指最后流水线级。而内存操作程序点缓存取指流水线与指令行取指部分及内存操作程序点缓存与指令行及内存操作程序点缓存的写入单元及指令行的写入单元组成的单元称为延迟系统的流水线,而延迟系统的流水线称为延迟系统,上流水线与下流水线组成的流水线称为非延迟系统的流水线,非延迟系统的流水线称为非延迟系统。
值得一提的是,上流水线的最后一级流水线称为上流水线的最后一级流水线。
值得一提的是,该冲突的重装实施将某些程序清除后换上新程序当中清除的某些程序的程序的指令的顺序执行顺序的第一个指令称为该冲突的重装的重装点的未更正前的第一个指令。
值得一提的是,该非冲突的重装实施将某些程序清除后换上新程序当中清除的某些程序的程序的指令的顺序执行顺序的第一个指令称为该非冲突的重装的重装点的未更正前的第一个指令。
值得一提的是,该重装实施将某些程序清除后换上新程序当中清除的某些程序的程序的指令的顺序执行顺序的第一个指令称为该重装未更正前的第一个指令。
(Z)非延迟系统的流水线
较佳地,所述步骤S312之后还包括:
S401:该一个逻辑内核的系统保存五标记,清除该一个逻辑内核的系统保存的一标记二标记三标记四标记,清除该一个逻辑内核保存的记录标记,设定一个存入的程序点序列号,然后给设定的一个存入的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,设定指令行的某一个指令行行位置作为最终的行,进入步骤S402;
S402:检测该一个逻辑内核设置的内存操作程序点缓存是否在现在既收到程序点序列号又收到相关冲突重装的内容,若否,进入步骤S408,若是,进入步骤S403;
S403:清除该一个逻辑内核保存的结束标记,清除内存操作程序点缓存与指令行的读取寻址工作,然后清除内存操作程序点缓存与指令行的取指工作,然后清除内存操作程序点缓存取指流水线的该一个逻辑内核的指令,检测该一个逻辑内核是否出现加载冒险执行的非冲突的重装的条件,若是,则进入步骤S431,若否,则进入步骤S404;
S404:检测最终的行有没有该一个逻辑内核的指令,若最终的行有该一个逻辑内核的指令,进入步骤S405,若最终的行没有该一个逻辑内核的指令,进入步骤S406;
S405:以前的该一个逻辑内核的缓存结束寄存器的程序点序列号不作为该一个逻辑内核的缓存结束寄存器的程序点序列号,然后删除该一个逻辑内核的缓存结束寄存器保存的程序点序列号,并找最终的行的最后一个该一个逻辑内核的指令,然后以取找到的最终的行的最后一个该一个逻辑内核的指令的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,然后以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,进入步骤S407;
S406:以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,进入步骤S407;
S407:检测该一个逻辑内核是否保存起点标记,若是,进入步骤S409,若否,进入步骤S414;
S408:检测该一个逻辑内核是否出现加载冒险执行的非冲突的重装的条件,若是,则进入步骤S431,若否,则进入步骤S413;
S409:取消实施上流水线的该一个逻辑内核的指令不经延迟系统的流水线直接进入下流水线,然后实施上流水线的该一个逻辑内核的指令经延迟系统的流水线进入下流水线,然后进行清除下流水线的该一个逻辑内核设置的内存操作程序点缓存现在收到的相关冲突重装的内容的相关冲突重装的冲突的重装所要清除的该一个逻辑内核的指令,然后进行该一个逻辑内核设置的内存操作程序点缓存现在收到的相关冲突重装的内容的相关冲突重装的冲突的重装在本发明所述的下流水线中的整理,在该一个逻辑内核设置的内存操作程序点缓存现在收到程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差的值上设置丙范围,然后检测该一个逻辑内核设置的内存操作程序点缓存现在收到程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差的值是否在丙范围,若是,进入步骤S410,若否,进入步骤S412;
S410:清除最终的行该一个逻辑内核的指令的不取标记,清除指令行的各个行中该一个逻辑内核的指令的不可取标记及该一个逻辑内核的指令的始标记,系统在指令行中找其指令的程序点序列号与该一个逻辑内核设置的内存操作程序点缓存现在收到程序点序列号相同的该一个逻辑内核的指令,然后把系统在指令行中找到的其指令的程序点序列号与该一个逻辑内核设置的内存操作程序点缓存现在收到程序点序列号相同的该一个逻辑内核的指令进行始标记,然后将其顺序执行顺序位于有始标记的该一个逻辑内核的指令的之前的那些该一个逻辑内核的指令进行不可取标记,然后以前的该一个逻辑内核的可取行不作为的该一个逻辑内核的可取行,然后以前作为的该一个逻辑内核的可取行将其撤消,然后检测指令行的各个指令行行位置中那一个指令行行位置储存有始标记的该一个逻辑内核的指令,然后把在指令行的各个指令行行位置中储存有始标记的该一个逻辑内核的指令的那一个指令行行位置作为该一个逻辑内核的可取行,进入步骤S411;
S411:然后在该一个逻辑内核的可取行中以有始标记的该一个逻辑内核的指令为开始进行按原本顺序的早与晚进行以先早后晚的取指方式一个一个取指令的办法取没有不可取标记的该一个逻辑内核的指令及没有不可取标记的该一个逻辑内核的指令的各种编号及没有不可取标记的该一个逻辑内核的指令的相关标记和没有不可取标记的该一个逻辑内核的指令的程序点序列号,该一个逻辑内核的系统保存一标记,并清除该一个逻辑内核的系统保存的二标记三标记四标记五标记,并删除该一个逻辑内核的系统保存的二标记三标记四标记五标记以此进行该一个逻辑内核的系统不保存二标记三标记四标记五标记。然后该一个逻辑内核保存结束标记,清除该一个逻辑内核保存的起点标记,然后进入步骤S430;
S412:清除最终的行该一个逻辑内核的指令的不取标记,清除该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号,然后先将该一个逻辑内核设置的内存操作程序点缓存现在收到的程序点序列号保存到该一个逻辑内核设置的内存操作程序点缓存的读取地址中,然后取下该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号在该一个逻辑内核设置的内存操作程序点缓存中所对应的该一个逻辑内核设置的内存操作程序点缓存位置所储存的指令、编号、相关标记、程序点序列号,并现在的从该程序点序列号对应位置所取的编号作为现在的从该程序点序列号对应位置所取的该指令的编号,并现在的从该程序点序列号对应位置所取的相关标记作为现在的从该程序点序列号对应位置所取的该指令的相关标记,并现在的从该程序点序列号对应位置所取的程序点序列号作为现在的从该程序点序列号对应位置所取的该指令的程序点序列号,清除该一个逻辑内核的读取记录器所保存的程序点序列号,然后将在该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号进行加一后只保留某范围数位的程序点序列号保存到该一个逻辑内核的读取记录器中,然后清除该一个逻辑内核保存的起点标记,在该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差上设定辛范围,然后检测该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差是否在设定的辛范围,若是,进入步骤S422,若否,进入步骤S423;
S413:检测该一个逻辑内核的管理系统是否现在接收了相关冲突重装的内容,若是,进入步骤S435,若否,进入步骤S414;
S414:检测最终的行有没有该一个逻辑内核的指令,若最终的行有该一个逻辑内核的指令,进入步骤S415,若最终的行没有该一个逻辑内核的指令,进入步骤S416;
S415:先删除该一个逻辑内核的缓存结束寄存器保存的程序点序列号,以前的该一个逻辑内核的缓存结束寄存器的程序点序列号不作为该一个逻辑内核的缓存结束寄存器的程序点序列号,然后找最终的行的最后一个的该一个逻辑内核的指令,然后以取找到的最终的行的最后一个的该一个逻辑内核的指令的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,然后以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,进入步骤S417;
S416:以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,进入步骤S417;
S417:检测该一个逻辑内核的系统是否保存一标记,若是,进入步骤S411,若否进入步骤S418;
S418:检测该一个逻辑内核的系统是否保存三标记,若是,进入步骤S421,若否进入步骤S419;
S419:检测该一个逻辑内核的系统是否保存四标记,若是,进入步骤S424,若否进入步骤S420;
S420:检测该一个逻辑内核的系统是否保存五标记,若是,进入步骤S429;
S421:然后清除该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号,然后将该一个逻辑内核的读取记录器所保存的程序点序列号保存到该一个逻辑内核设置的内存操作程序点缓存的读取地址中,然后取下该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号在该一个逻辑内核设置的内存操作程序点缓存中所对应的该一个逻辑内核设置的内存操作程序点缓存位置所储存的指令、编号、相关标记、程序点序列号,并现在的从该程序点序列号对应位置所取的编号作为现在的从该程序点序列号对应位置所取的该指令的编号,并现在的从该程序点序列号对应位置所取的相关标记作为现在的从该程序点序列号对应位置所取的该指令的相关标记,并现在的从该程序点序列号对应位置所取的程序点序列号作为现在的从该程序点序列号对应位置所取的该指令的程序点序列号,清除该一个逻辑内核的读取记录器所保存的程序点序列号,然后将在该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号进行加一后只保留某范围数位的程序点序列号保存到该一个逻辑内核的读取记录器中,在该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差上设定辛范围,然后检测该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差是否在设定的辛范围,若是,进入步骤S422,若否,进入步骤S423;
S422:该一个逻辑内核的系统保存四标记,清除该一个逻辑内核的系统保存的一标记二标记三标记五标记,并删除该一个逻辑内核的系统保存的一标记二标记三标记五标记以此进行该一个逻辑内核的系统不保存一标记二标记三标记五标记,该一个逻辑内核保存结束标记,进入步骤S430;
S423:然后该一个逻辑内核的系统保存三标记,并清除该一个逻辑内核的系统保存的一标记二标记四标记五标记,并删除该一个逻辑内核的系统保存的一标记二标记四标记五标记以此进行该一个逻辑内核的系统不保存一标记二标记四标记五标记,(从开头取然后设一),进入步骤S430;
S424:检测最终的行有没有该一个逻辑内核的指令,若有该一个逻辑内核的指令,进入步骤S425,若没有该一个逻辑内核的指令,进入步骤S426;
S425:在最终的行中找其指令本身的程序点序列号与该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号相同的该一个逻辑内核的指令,然后把在最终的行中找到的其指令本身的程序点序列号与该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号相同的该一个逻辑内核的指令进行不取标记,然后将其顺序执行顺序位于进行不取标记该一个逻辑内核的指令之前那些该一个逻辑内核的指令进行不取标记,进入步骤S426;
S426:检测最终的行内的没有不取标记的该一个逻辑内核的指令的顺序执行顺序的早与晚,然后开始进行按原本顺序执行的顺序的早与晚进行以先早后晚的取指方式一个一个取指令的办法取最终的行内的没有不取标记的该一个逻辑内核的指令,检测指令行的各个行与该一个逻辑内核的内存操作程序点缓存取指流水线及该一个逻辑内核设置的内存操作程序点缓存的取指端是否全部都没有该一个逻辑内核的指令,若是,进入步骤S427,若否,进入步骤S428;
S427:该一个逻辑内核的系统保存五标记,清除该一个逻辑内核的系统保存的一标记二标记三标记四标记,并删除该一个逻辑内核的系统保存的一标记二标记三标记四标记以此进行该一个逻辑内核的系统不保存一标记二标记三标记四标记,进入步骤S429;
S428:该一个逻辑内核的系统保存四标记,清除该一个逻辑内核的系统保存的一标记二标记三标记五标记,并删除该一个逻辑内核的系统保存的一标记二标记三标记五标记以此进行该一个逻辑内核的系统不保存一标记二标记三标记五标记,进入步骤S430;
S429:取消实施上流水线的该一个逻辑内核的指令经延迟系统的流水线进入下流水线,然后实施上流水线的该一个逻辑内核的指令不经延迟系统的流水线直接进入下流水线,该一个逻辑内核的系统保存五标记,然而不经延迟系统的流水线直接进入下流水线的该一个逻辑内核的指令的还没有被清除的该一个逻辑内核的指令按其顺序执行的顺序的早与晚进行以先早后晚方式一个一个排列办法构成上次的从指令行与该一个逻辑内核设置的内存操作程序点缓存取的该一个逻辑内核的指令的程序之后的顺序执行的程序用于执行,然后用于执行的该一个逻辑内核的指令构成的程序按乱序执行的处理办法进行执行,然后实施执行程序的任务,然后进入步骤S402;
S430:然后从指令行与该一个逻辑内核设置的内存操作程序点缓存中取该一个逻辑内核的指令按其取指的顺序的早与晚进行以先早后晚方式一个一个排列的办法排列成程序从而构成最近一次冲突的重装的顺序执行的程序用于执行,然后用于执行的该一个逻辑内核的指令构成的程序按乱序执行的处理办法进行执行,然后实施执行程序的任务,然后进入步骤S402;
S431:取消实施上流水线的该一个逻辑内核的指令经延迟系统的流水线进入下流水线,然后实施上流水线的该一个逻辑内核的指令不经延迟系统的流水线直接进入下流水线,该一个逻辑内核的系统保存五标记,并清除该一个逻辑内核的系统保存的一标记二标记三标记四标记,并删除该一个逻辑内核的系统保存的一标记二标记三标记四标记以此该一个逻辑内核的系统不保存一标记二标记三标记四标记,然后该一个逻辑内核保存结束标记,清除该一个逻辑内核保存的起点标记,暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,然后按进行清除非延迟系统的流水线的该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要清除的该一个逻辑内核的指令,然后进行该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后向非内存操作程序点缓存取该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要取的该一个逻辑内核的指令,而取下的该一个逻辑内核的指令构成取下的程序作为该非冲突的重装的条件下该非冲突的重装的程序用于执行,并用于执行的该一个逻辑内核的指令构成的程序按乱序执行的处理办法进行执行,清除该一个逻辑内核保存的起点标记,清除内存操作程序点缓存取指流水线的该一个逻辑内核的指令,在该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差的值上设置丁范围,然后检测该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差的值是否在丁范围,若是,则进入步骤S432,若否则,进入步骤S433;
S432:以前的该一个逻辑内核的缓存结束寄存器的程序点序列号不作为该一个逻辑内核的缓存结束寄存器的程序点序列号,然后删除该一个逻辑内核的缓存结束寄存器保存的程序点序列号,然后将该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,然后以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,清除指令行的各个行的该一个逻辑内核的指令,进入步骤S402;
S433:系统在指令行中找其指令的程序点序列号与该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号相同的该一个逻辑内核的指令,然后把系统在指令行中找到的其指令的程序点序列号与该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号相同的该一个逻辑内核的指令进行后结标记,然后将指令行的各个行中其顺序执行顺序位于有后结标记的该一个逻辑内核的指令之后的那些该一个逻辑内核的指令清除,然后将指令行的各个行中有后结标记的该一个逻辑内核的指令清除,检测最终的行有没有该一个逻辑内核的指令,若有该一个逻辑内核的指令,进入步骤S434,若没有该一个逻辑内核的指令,进入步骤S402;
S434:以前的该一个逻辑内核的缓存结束寄存器的程序点序列号不作为该一个逻辑内核的缓存结束寄存器的程序点序列号,然后删除该一个逻辑内核的缓存结束寄存器保存的程序点序列号,然后找指令清除后的最终的行的顺序执行顺序上的最后一个的该一个逻辑内核的指令,然后将找出的指令清除后的最终的行的顺序执行顺序上的最后一个的该一个逻辑内核的指令的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,然后以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,进入步骤S402;
S435:然后取消实施上流水线的该一个逻辑内核的指令经延迟系统的流水线进入下流水线,然后实施上流水线的该一个逻辑内核的指令不经延迟系统的流水线直接进入下流水线,该一个逻辑内核的系统保存五标记,并清除该一个逻辑内核的系统保存的一标记二标记三标记四标记,并删除该一个逻辑内核的系统保存的一标记二标记三标记四标记以此该一个逻辑内核的系统不保存一标记二标记三标记四标记,然后该一个逻辑内核保存结束标记,清除该一个逻辑内核保存的起点标记,暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,然后进行清除非延迟系统的流水线的该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装所要清除的该一个逻辑内核的指令,然后进行该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后向非内存操作程序点缓存取该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装所要取的该一个逻辑内核的指令,而取下的该一个逻辑内核的指令构成取下的程序作为该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的程序用于执行,并用于执行的该一个逻辑内核的指令构成的程序按乱序执行的处理办法进行执行,清除该一个逻辑内核保存的起点标记,清除内存操作程序点缓存取指流水线的该一个逻辑内核的指令,在该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差的值上设置丁范围,然后检测该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差的值是否在丁范围,若是,则进入步骤S436,若否,则进入步骤S437;
S436:以前的该一个逻辑内核的缓存结束寄存器的程序点序列号不作为该一个逻辑内核的缓存结束寄存器的程序点序列号,然后删除该一个逻辑内核的缓存结束寄存器保存的程序点序列号,然后将该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,然后以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,清除指令行的各个行的该一个逻辑内核的指令,进入步骤S402;
S437:系统在指令行中找其指令的程序点序列号与该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号相同的该一个逻辑内核的指令,然后把系统在指令行中找到的其指令的程序点序列号与该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号相同的该一个逻辑内核的指令进行后结标记,然后将指令行的各个行中其顺序执行顺序位于有后结标记的该一个逻辑内核的指令之后的那些该一个逻辑内核的指令清除,然后将指令行的各个行中有后结标记的指令清除,检测最终的行有没有该一个逻辑内核的指令,若有该一个逻辑内核的指令,进入步骤S438,若没有该一个逻辑内核的指令,进入步骤S402;
S438:以前的该一个逻辑内核的缓存结束寄存器的程序点序列号不作为该一个逻辑内核的缓存结束寄存器的程序点序列号,然后删除该一个逻辑内核的缓存结束寄存器保存的程序点序列号,然后找指令清除后的最终的行的顺序执行顺序上的最后一个的该一个逻辑内核的指令,然后将找出的指令清除后的最终的行的顺序执行顺序上的最后一个的该一个逻辑内核的指令的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,然后以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,进入步骤S402;
出现向非内存操作程序点缓存取非冲突的重装的重装点的第一个条指令或出现等待向非内存操作程序点缓存取非冲突的重装的重装点的第一个条指的这些情况就称为确认向非内存操作程序点缓存取非冲突的重装的重装点的第一个条指令
值得一提的是该内存加载操作与该内存存储操作发生冲突是指该内存加载操作越过该内存存储操作进行执行后并出现该内存加载操作所处理的内存区域与该内存加载操作越过的该内存存储操作所处理的内存区域出现重叠的情况。
值得一提的是乙范围的作用是避免分支预测时重装的指令位于内存操作程序点缓存取的指令之前。
值得一提的是重装指的是重新装入程序。
内存加载操作与内存存储操作发生冲突产生的重新装入以前的程序而不更正程序的装入以前的程序重装称为冲突的重装,更正新的程序的而装入新的程序的指令的重装称为非冲突的重装
值得一提的是以该一个逻辑内核设置的内存操作程序点缓存结束寄存器的程序点序列号为本身的程序点序列号的指令称为该一个逻辑内核设置的内存操作程序点缓存结束寄存器的指令,该一个逻辑内核设置的内存操作程序点缓存结束寄存器的指令之后的指令称为该一个逻辑内核设置的内存操作程序点缓存结束寄存器之后指令。(Z)
值得一提的是某程序点序列号在该一个逻辑内核设置的内存操作程序点缓存的对应位置所储存的编号就是某程序点序列号在该一个逻辑内核设置的内存操作程序点缓存的对应所储存的指令的编号,值得一提的是某程序点序列号在该一个逻辑内核设置的内存操作程序点缓存的对应所储存的相关标记就是某程序点序列号在该一个逻辑内核设置的内存操作程序点缓存的对应位置所储存的指令的相关标记,值得一提的是某程序点序列号在该一个逻辑内核设置的内存操作程序点缓存的对应位置所储存的程序点序列号就是某程序点序列号在该一个逻辑内核设置的内存操作程序点缓存的对应位置所储存的指令的程序点序列号,
指令行的行指的是指令行的某一行。
其指令为最近收到的程序点序列号的指令称为最近收到程序点序列号的指令。
最近收到程序点序列号的指令。
值得一提的是该程序点序列号的上一个程序点序列号就是该程序点序列号减一后只保留某范围数位的程序点序列号。
值得一提的是该程序点序列号的下一个程序点序列号就是该程序点序列号加一后只保留某范围数位的程序点序列号。
值得一提的是该程序点序列号无论如何加减都只保留固定的位数。
值得一提的是步骤S417~S420中的实施的检测的标记一标记三标记四标记五,其当中的作用是指示系统是否要向指令行与内存操作程序点缓存,若有标记一与标记四则从指令行中取指令,若有标记三则从内存操作程序点缓存中取指令,若有五则不用从指令行与内存操作程序点缓存,从非内存操作程序点缓存可直接进入执行单元执行,S401~S438提供了内存操作程序点缓存取指及取指的取消程序。步骤S401~S438提供了开始停止取指的过程,可以让在内存操作程序点缓存取完后向其它缓存中取指作准备,并代替发生冲突要取指令时所取指令的工作。
非内存操作程序点缓存取指部分,用于协调内存操作程序点缓存停止取指之间的协调工作,目的是当非内存操作程序点缓存取的指令到达内存操作程序点缓存端口时正是内存操作程序点缓存停止取指的时候。
值得一提的是,先将取下的指令的程序点序列号减去某个数后构成缓存序列号,这个功能的目的是调节阻断非内存操作程序点缓存中取指令当中的停止阻断非内存操作程序点缓存的时候。
值得一提的是非内存操作程序点缓存与内存操作程序点缓存是分开来取指它们之间通过步骤S500~S522为对接步骤来协调所取的指令。
值得一提的是,错误分支的程序点序列号与程序点序列号相差设定一个范围,可以根据需要自行设定。
较佳地,所述步骤S312或步骤S438之后还包括:
S500:检测该一个逻辑内核的该非内存操作程序点缓存有没有取该一个逻辑内核的指令,若有该一个逻辑内核的指令,进入步骤S501,若没有该一个逻辑内核的指令,进入步骤S502;
S501:取该一个逻辑内核的该非内存操作程序点缓存所取的该一个逻辑内核的指令的最后一个的该一个逻辑内核的指令的程序点序列号保存在该一个逻辑内核的该非内存操作程序点缓存的开启寄存器中,进入步骤S502;
S502:检测该一个逻辑内核设置的内存操作程序点缓存是否现在收到程序点序列号,清除本发明所述的内存操作程序点缓存取指流水线的该一个逻辑内核的指令,若否,进入步骤S517,若是,进入步骤S503;
S503:暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,设置一个某该非内存操作程序点缓存设定的数,然后清除系统中保存的该一个逻辑内核的该非内存操作程序点缓存的缓存序列号,然后将该一个逻辑内核的该非内存操作程序点缓存的开启寄存器保存的程序点序列号减去某该非内存操作程序点缓存设定的数后只保留某范围数位构成该一个逻辑内核的该非内存操作程序点缓存的缓存序列号,然后将该一个逻辑内核的该非内存操作程序点缓存的开启寄存器保存的程序点序列号减去某该非内存操作程序点缓存设定的数后只保留某范围数位构成该一个逻辑内核的该非内存操作程序点缓存的缓存序列号当中构成的该一个逻辑内核的该非内存操作程序点缓存的缓存序列号保存在系统中,进入步骤S507;
S507:检测该一个逻辑内核是否出现加载冒险执行的非冲突的重装的条件,若是,则进入步骤S508,若否,则进入步骤S509;
S508:以前的该一个逻辑内核的缓存写入后端寄存器的程序点序列号不作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后以该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后清除上流水线的该一个逻辑内核的指令,然后清除非延迟系统的流水线的该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要清除的该一个逻辑内核的指令,然后进行该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后进行实施该一个逻辑内核的该线程从该非内存操作程序点缓存中取该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要取的该一个逻辑内核的指令,然后在下一时钟进入步骤S500,以此循环;
S509:检测该一个逻辑内核是否保存起点标记,若是,步骤S507,若否,步骤S510;
S510:检测该一个逻辑内核是否保存结束标记,若是,步骤S512,若否,步骤S511;
S511:在该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号与系统保存的该一个逻辑内核的该非内存操作程序点缓存的缓存序列号相差的值上设定戊范围,然后检测是否出现该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号与系统保存的该一个逻辑内核的该非内存操作程序点缓存的缓存序列号相差的值在设定的戊范围,若是,进入步骤S512,若否,则进入步骤S507;
S512:检测该一个逻辑内核的该线程是否允许取该一个逻辑内核的指令,若是,进入步骤S513,若否,进入步骤S512;
S513:进行实施该一个逻辑内核的该线程从该非内存操作程序点缓存中取该一个逻辑内核的该非内存操作程序点缓存的本发明所述的该一个逻辑内核的开启寄存器的程序点序列号之后的指令构成该一个逻辑内核的该非内存操作程序点缓存的本发明所述的该一个逻辑内核的开启寄存器的程序点序列号之后的该一个逻辑内核的指令的程序用于执行,则是非内存操作程序点缓存取指端从非内存操作程序点缓存取的该一个逻辑内核的指令,取的指令是该一个逻辑内核的该非内存操作程序点缓存的本发明所述的该一个逻辑内核的开启寄存器的程序点序列号之后的该一个逻辑内核的指令,然后在下一时钟进入步骤S500,以此循环;
S517:检测该一个逻辑内核的管理系统是否现在接收了相关冲突重装的内容,若是,进入步骤S518,若否,进入步骤S520;
S518:暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,清除上流水线的该一个逻辑内核的指令,进入步骤S519;
S519:然后以前的该一个逻辑内核的缓存写入后端寄存器的程序点序列号不作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后以该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后进行清除非延迟系统的流水线的该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装所要清除的该一个逻辑内核的指令,然后进行该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后进行实施该一个逻辑内核的该线程从该非内存操作程序点缓存中取该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装所要取的该一个逻辑内核的指令,然后在下一时钟进入步骤S500,以此循环;
S520:检测该一个逻辑内核是否出现加载冒险执行的非冲突的重装的条件,若是,进入步骤S521,若否,在下一时钟进入步骤S522,以此循环;
S521:暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,清除上流水线的该一个逻辑内核的指令,然后以前的该一个逻辑内核的缓存写入后端寄存器的程序点序列号不作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后进行清除非延迟系统的流水线的该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要清除的该一个逻辑内核的指令,然后进行该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后以该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后进行实施该一个逻辑内核的该线程从该非内存操作程序点缓存中取该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要取该一个逻辑内核的指令,然后在下一时钟进入步骤S500,以此循环;
S522:进行实施该一个逻辑内核的该线程从该非内存操作程序点缓存中取该一个逻辑内核的指令,然后在下一时钟进入步骤S500,以此循环;
值得一提的是,存入下流水线的各个该一个逻辑内核的指令中最近排最后的该一个逻辑内核的指令的程序点序列号称为存入下流水线的最近排最后该一个逻辑内核的指令的程序点序列号。
值得一提的是戊范围的作用暂停从非内存操作程序点缓存中取的指令时所从非内存操作程序点缓存中取的指令太前时是应该不暂停时可以不暂停。
值得一提,其程序点序列号为该一个逻辑内核的该非内存操作程序点缓存的开启寄存器的程序点序列号的指令称为该一个逻辑内核的该非内存操作程序点缓存的开启寄存器的程序点序列号的指令,而该一个逻辑内核的该非内存操作程序点缓存的开启寄存器的程序点序列号的指令之后的指令称为该一个逻辑内核的该非内存操作程序点缓存的开启寄存器的程序点序列号之后的指令(Z)。
步骤S500~S522为对接步骤,可以很好地对接非内存操作程序点缓存与内存操作程序点缓存之间的断开程序。
步骤S511中非内存操作程序点缓存的启动。这些启动互动因为定那个时候取指令正好及时到达内存操作程序点缓存并在那个时候内存操作程序点缓存已取用于,如果在取用完后的那时下一步的指令正好到达,而非等待,那么就不那么浪费时间。
步骤S511详细描述了一般情况下如何处理。
主要是避免从内存操作程序点缓存取之后的指令,因为缓存取指时有区间,如果取到该处理器流水线所存入内存操作程序点缓存的程序点序列号,那么之后的指令会有两个指令一个是处理器流水线的指令代表之后的指令,处理器流水线的指令就是处理器流水线中的指令来自于流水线取指端的非内存操作程序点缓存在之前取指而放入流水线的指令,而另一个内存操作程序点缓存的指令那是之前的指令,而在程序上取指原则必须一个一个往后取,那么这时从向内存操作程序点缓存取指令,那就不符全程序取指原则,但处理器流水线取指令,那就符全程序取指原则。
较佳地,所述步骤S3还包括:在内存作程序点缓存取指令时阻断内存作程序点缓存从非内存操作程序点缓存取指令而存入内存作程序点缓存,直至内存作程序点缓存取用后才不阻断内存作程序点缓存从非内存操作程序点缓存取指令。
主要阻断的原因是,当在内存作程序点缓存取指令时因为取下的指令很多,如果两个指令都取,同时非内存作程序点缓存取下的指令要存内存作程序点缓存,那么内存作程序点缓存的工作量就变大了,所以通过阻断一时等取得差不多时才停止阻断,避免内存作程序点缓存工作量大。
较佳地,所述步骤S3之后还包括:
S4:进行把从内存操作程序点缓存与指令行取下的那些指令及从内存操作程序点缓存与指令行取下的那些指令的各种编号及从内存操作程序点缓存与指令行取下的那些指令的相关标记及从内存操作程序点缓存与指令行取下的那些指令的程序点序列号发送到本发明所述的解码单元之后过程的除掉内存操作程序点缓存指令行单元的单元后实施进行以所述的解码单元之后过程的除掉内存操作程序点缓存指令行单元的单元为开始的解码单元的之后的过程;
较佳地,所述步骤S3之后还包括:
S5:进行把从内存操作程序点缓存与指令行取下的那些指令及从内存操作程序点缓存与指令行取下的那些指令的各种编号及从内存操作程序点缓存与指令行取下的那些指令的相关标记及从内存操作程序点缓存与指令行取下的那些指令的程序点序列号发送到所述的重命名单元之后过程的除掉内存操作程序点缓存指令行单元的单元后进行以所述的重命名单元之后过程的除掉内存操作程序点缓存指令行单元的单元为开始的重命名的之后的过程。
值得一提的是,内存操作程序点缓存与指令行与内存操作程序点缓存写入单元及内存操作程序点缓存取指单元及指令行写入单元及指令行取指单元组成的单元称为内存操作程序点缓存指令行单元。
值得一提的是,解码单元的解码过程之后过程的单元当中除去内存操作程序点缓存指令行单元后所构成的单元称为解码单元之后过程的除掉内存操作程序点缓存指令行单元的单元。
值得一提的是,重命名单元的重命名过程之后过程的单元当中除去内存操作程序点缓存指令行单元后所构成的单元称为重命名单元之后过程的除掉内存操作程序点缓存指令行单元的单元
相较于现有技术,本发明具有以下优点:
(1)本发明的降低内存读取乱序的方法,按程序顺序取指顺序寻址,可以不用重新重命名及不用重新地址寻址计算;通过缓存法降低内存加载指令越过内存存储指令后要重装的延迟,可以降低读写冲突后的重装损失;
(2)本发明的降低内存读取乱序的方法,还对有冲突的内存加载操作所对应的指令中排最前的内存加载操作所对应的指令的程序点序列号与检测处理器流水线的该线程所存入内存操作程序点缓存的程序点序列号相差的值设定一个范围,其作用是在设定范围下取下的指令不在内存操作程序点缓存,则不用从内存操作程序点缓存取指令,若不在设定范围下则在内存操作程序点缓存,则从内存操作程序点缓存取指令;
(3)本发明的降低内存读取乱序的方法,还提供了内存作程序点缓存是如何根据冲突指令的执行情况进行取指的,解决了当在发生冲突后如何取指的问题;
(4)本发明的降低内存读取乱序的方法,还提供了阻断从其它非内存操作程序点缓存中取指令的方法,用于在内存作程序点缓存取指令时阻断内存作程序点缓存从其它缓存取指令而存入内存作程序点缓存,直至内存作程序点缓存取用后才不阻断内存作程序点缓存从其它缓存取指令;
(5)本发明的降低内存读取乱序的方法,还提供了内存操作程序点缓存与其它缓存之间的对接过程,用于对接其它缓存与内存操作程序点缓存之间的断开程序。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
下面结合附图对本发明的实施方式作进一步说明:
图1为本发明的一实施例的降低内存读取乱序的方法的流程图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
结合图1,本实施例对本发明的降低内存读取乱序的方法进行详细描述,如图1所示,其包括以下步骤:
S1:该一个逻辑内核设置指令行以及内存操作程序点缓存以及缓存结束寄存器以及开启寄存器及读取记录器以及写入后端寄存器以及内存操作程序点缓存处理工作相关辅助零件及该一个逻辑内核的管理系统及该一个逻辑内核的系统,内存操作程序点缓存处理工作相关辅助零件有则指令行以及缓存结束寄存器以及开启寄存器及读取记录器以及写入后端寄存器,指令行称为内存操作程序点缓存存入缓冲;
S2:产生该一个逻辑内核的指令的自身的程序点序列号,将该一个逻辑内核的指令按自身的程序点序列号存入对应该一个逻辑内核设置的内存操作程序点缓存的位置中;
S3:从该一个逻辑内核设置的内存操作程序点缓存中取指令。
一实施例中,步骤S2还包括:检测该一个逻辑内核的指令存入的内存操作程序点缓存的位置,然后将该一个逻辑内核的指令的相关标记及各种编号,存入内存操作程序点缓存的该一个逻辑内核的指令所存入的位置中;对应地,步骤S3还包括:从该一个逻辑内核设置的内存操作程序点缓存中取指令的时候,同时将所存入的位置中所存的相关标记及各种编号一同取走。
一实施例中,内存操作程序点缓存的程序点序列号设计时可以只保留某个位数,超过的位数不保留。而程序点序列号取指可取用其中的一部分位进行取指。
因为实际上程序点序列号的位数代表容量,太大实际上没有必要,可缩减到适应的大小。
一实施例中,步骤S2具体包括:
S100:事前设置步骤01,检测该一个逻辑内核的指令是否就是在该一个逻辑内核设置的内存操作程序点缓存没有指令的情况下该一个逻辑内核处理的该一个逻辑内核的指令的第一个指令,若是,进入步骤S101,事前设置步骤02,若否,进入步骤S102,执行存入程序点序列号00;
S101:事前设置步骤02,设定一个甲程序点序列号,然后给该一个逻辑内核的指令本身一个设定的甲程序点序列号,并且本身的指令是作为其本身采用的程序点序列号的指令,并该一个逻辑内核的指令本身的程序点序列号以作为一个地址用于该一个逻辑内核设置的内存操作程序点缓存的寻址,然后进入步骤S106;
S102:执行存入程序点序列号00,检测该一个逻辑内核是否出现该重装,判断该一个逻辑内核是否出现该重装:若否,进入步骤S103,执行存入程序点序列号01,若是,进入步骤S104,执行存入程序点序列号02;
S103:执行存入程序点序列号01,然后该一个逻辑内核的指令先采用顺序执行中该一个逻辑内核的指令的上一个指令的程序点序列号加一后只保留某范围数位的程序点序列号作为本身的程序点序列号,并且本身的指令是作为其本身采用的程序点序列号的指令,并该一个逻辑内核的指令本身的程序点序列号以作为一个地址用于该一个逻辑内核设置的内存操作程序点缓存的寻址,进入步骤S106;
S104:执行存入程序点序列号02,检测该一个逻辑内核的指令是否该重装的重新装入的程序的第一个指令,若否,进入步骤S103,执行存入程序点序列号01,若是,进入步骤S105;
S105:该一个逻辑内核的指令则采用该重装未更正前的第一个指令的程序点序列号作为本身的程序点序列号,并且本身的指令是作为其本身采用的程序点序列号的指令,并该一个逻辑内核的指令本身的程序点序列号以作为一个地址用于该一个逻辑内核设置的内存操作程序点缓存的寻址,进入步骤S106;
S106:取存安排,该一个逻辑内核的指令经重命名后从处理器流水线的重命名单元上取已重命名的该一个逻辑内核的指令及已重命名的该一个逻辑内核的指令的一切资料,然后取下的该一个逻辑内核的指令及该一个逻辑内核的指令的各种编号及该一个逻辑内核的指令的相关标记和该一个逻辑内核的指令的程序点序列号按本身属于的指令本身的程序点序列号存入本身属于的指令本身的程序点序列号所对应的该一个逻辑内核设置的内存操作程序点缓存位置中,以此进行将该一个逻辑内核的指令放入该一个逻辑内核设置的内存操作程序点缓存系统中,并安排取下的该一个逻辑内核的指令及该一个逻辑内核的指令的各种编号及该一个逻辑内核的指令的相关标记和该一个逻辑内核的指令的程序点序列号先标记为该一个逻辑内核的指令的方式在下一时钟移走到指令行第一行,并保存移到指令行第一行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S107;
S107:将该一个逻辑内核的指令的一切资料移到指令行第一行时的时钟设为该一个逻辑内核的指令第一行时钟,移到第一行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第一行时钟的下一时钟移走到指令行第二行,并指令行第一行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第二行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S108;
S108:将该一个逻辑内核的指令的一切资料移到指令行第二行时的时钟设为该一个逻辑内核的指令第二行时钟,移到第二行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第二行时钟的下一时钟移走到指令行第三行,并指令行第二行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第三行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S109;
S109:将该一个逻辑内核的指令的一切资料移到指令行第三行时的时钟设为该一个逻辑内核的指令第三行时钟,移到第三行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第三行时钟的下一时钟移走到指令行第四行,并指令行第三行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第四行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S110;
S110:将该一个逻辑内核的指令的一切资料移到指令行第四行时的时钟设为该一个逻辑内核的指令第四行时钟,移到第四行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第四行时钟的下一时钟移走到指令行第五行,并指令行第四行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第五行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S111;
S111:将该一个逻辑内核的指令的一切资料移到指令行第五行时的时钟设为该一个逻辑内核的指令第五行时钟,移到第五行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第五行时钟的下一时钟移走到指令行第六行,并指令行第五行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第六行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S112;
S112:指令行第六行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序。
步骤S101~S105详细描述了内存操作程序点缓存的存入第一步,如何产生自身的程序点序列号;步骤S106~S112详细描述了内存操作程序点缓存的存入第二步,如何按自身的程序点序列号存入对应的内存操作程序点缓存。
另一实施例中,步骤S2具体包括:
S200:事前设置步骤11,检测该一个逻辑内核的指令是否就是在该一个逻辑内核设置的内存操作程序点缓存没有指令的情况下该一个逻辑内核处理的该一个逻辑内核的指令的第一个指令,若是,进入步骤S201,事前设置步骤12,若否,进入步骤S202,执行存入程序点序列号10;
S201:事前设置步骤12,设定一个甲程序点序列号,然后给该一个逻辑内核的指令本身一个设定的甲程序点序列号,并且本身的指令是作为其本身采用的程序点序列号的指令,并该一个逻辑内核的指令本身的程序点序列号以作为一个地址用于该一个逻辑内核设置的内存操作程序点缓存的寻址,然后进入步骤S206;
S202:执行存入程序点序列号10,检测该一个逻辑内核是否出现该重装,判断该一个逻辑内核是否出现该重装:若否,进入步骤S203,执行存入程序点序列号11,若是,进入步骤S204,执行存入程序点序列号12;
S203:执行存入程序点序列号11,然后该一个逻辑内核的指令先采用顺序执行中该一个逻辑内核的指令的上一个指令的程序点序列号加一后只保留某范围数位的程序点序列号作为本身的程序点序列号,并且本身的指令是作为其本身采用的程序点序列号的指令,并该一个逻辑内核的指令本身的程序点序列号以作为一个地址用于该一个逻辑内核设置的内存操作程序点缓存的寻址,进入步骤S206;
S204:执行存入程序点序列号12,检测该一个逻辑内核的指令是否该重装的重新装入的程序的第一个指令,若否,进入步骤S203,执行存入程序点序列号11,若是,进入步骤S205;
S205:该一个逻辑内核的指令则采用该重装未更正前的第一个指令的程序点序列号作为本身的程序点序列号,并且本身的指令是作为其本身采用的程序点序列号的指令,并该一个逻辑内核的指令本身的程序点序列号以作为一个地址用于该一个逻辑内核设置的内存操作程序点缓存的寻址,进入步骤S206;
S206:取存安排,该一个逻辑内核的指令经解码后从处理器流水线的解码单元与已解码的指令缓存取指单元上取那些从非内存操作程序点缓存取下的已解码的该一个逻辑内核的指令及已解码的该一个逻辑内核的指令的一切资料,然后取下的该一个逻辑内核的指令及该一个逻辑内核的指令的各种编号及该一个逻辑内核的指令的相关标记和该一个逻辑内核的指令的程序点序列号按本身属于的指令本身的程序点序列号存入本身属于的指令本身的程序点序列号所对应的该一个逻辑内核设置的内存操作程序点缓存位置中,以此进行将该一个逻辑内核的指令放入该一个逻辑内核设置的内存操作程序点缓存系统中,并安排取下的该一个逻辑内核的指令及该一个逻辑内核的指令的各种编号及该一个逻辑内核的指令的相关标记和该一个逻辑内核的指令的程序点序列号先标记为该一个逻辑内核的指令的方式在下一时钟移走到指令行第一行,并保存移到指令行第一行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S207;
S207:将该一个逻辑内核的指令的一切资料移到指令行第一行时的时钟设为该一个逻辑内核的指令第一行时钟,移到第一行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第一行时钟的下一时钟移走到指令行第二行,并指令行第一行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第二行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S208;
S208:将该一个逻辑内核的指令的一切资料移到指令行第二行时的时钟设为该一个逻辑内核的指令第二行时钟,移到第二行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第二行时钟的下一时钟移走到指令行第三行,并指令行第二行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第三行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S209;
S209:将该一个逻辑内核的指令的一切资料移到指令行第三行时的时钟设为该一个逻辑内核的指令第三行时钟,移到第三行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第三行时钟的下一时钟移走到指令行第四行,并指令行第三行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第四行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S210;
S210:将该一个逻辑内核的指令的一切资料移到指令行第四行时的时钟设为该一个逻辑内核的指令第四行时钟,移到第四行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第四行时钟的下一时钟移走到指令行第五行,并指令行第四行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第五行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S211;
S211:将该一个逻辑内核的指令的一切资料移到指令行第五行时的时钟设为该一个逻辑内核的指令第五行时钟,移到第五行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第五行时钟的下一时钟移走到指令行第六行,并指令行第五行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第六行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S212;
S212:指令行第六行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序。
步骤S201~S205详细描述了内存操作程序点缓存的存入第一步,如何产生自身的程序点序列号;步骤S206~S212详细描述了内存操作程序点缓存的存入第二步,如何按自身的程序点序列号存入对应的内存操作程序点缓存。
上述步骤中的程序点序列号只是用于举例说明,不同实施例中,可以取其它不同的程序点序列号。
一实施例中,步骤S3还包括:
S301:检测指令行第一行有没有该一个逻辑内核的指令,若指令行第一行有该一个逻辑内核的指令,进入步骤S302,若指令行第一行没有该一个逻辑内核的指令,进入步骤S303;
S302:先删除该一个逻辑内核的缓存写入后端寄存器保存的程序点序列号,以前的该一个逻辑内核的缓存写入后端寄存器的程序点序列号不作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后找指令行第一行顺序执行的最后一个的该一个逻辑内核的指令,然后以取找到的指令行第一行顺序执行的最后一个的该一个逻辑内核的指令的程序点序列号保存到该一个逻辑内核的缓存写入后端寄存器中,然后以该一个逻辑内核的缓存写入后端寄存器保存的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,进入步骤S304;
S303:以该一个逻辑内核的缓存写入后端寄存器保存的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,进入步骤S304;
S304:检测该一个逻辑内核是否出现内存加载操作与该内存存储操作发生冲突并该一个逻辑内核出现世界上的社会现有的发明所默认发明过的方法中加载冒险执行的冲突的重装的条件,若是,进入步骤S306,若否,进入步骤S305;
S305:检测该一个逻辑内核是否出现世界上的社会现有的发明所默认发明过的方法中加载冒险执行的非冲突的重装的条件,若是,进入步骤S307,若否,进入步骤S312;
S306:检测该一个逻辑内核是否出现世界上的社会现有的发明所默认发明过的方法中加载冒险执行的非冲突的重装的条件,若是,进入步骤S307,若否,进入步骤S308;
S307:暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,然后以前的该一个逻辑内核的缓存写入后端寄存器的程序点序列号不作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后以该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后按世界上的社会现有的发明所默认发明过的方法进行清除本发明所述的非延迟系统的流水线中该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要清除的该一个逻辑内核的指令及按世界上的社会现有的发明所默认发明过的方法进行该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后按世界上的社会现有的发明所默认发明过的方法向非内存操作程序点缓存取该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要取的该一个逻辑内核的指令,然后在下一时钟进入步骤S301;
S308:以前的该一个逻辑内核的该内存存储操作的有冲突的程序点序列号不作为该一个逻辑内核的该内存存储操作的有冲突的程序点序列号,然后并将该一个逻辑内核检测出的出现的冲突的重装的条件下该冲突的重装的重装点的未更正前的第一个指令的程序点序列号设置为该一个逻辑内核的该内存存储操作的有冲突的程序点序列号,然后在该一个逻辑内核的该内存存储操作的有冲突的程序点序列号与该一个逻辑内核的缓存写入后端寄存器保存的程序点序列号相差的值上设定甲范围,然后进入步骤S309;
S309:检测该一个逻辑内核的该内存存储操作的有冲突的程序点序列号与该一个逻辑内核的缓存写入后端寄存器保存的程序点序列号相差的值是否不在设定的甲范围,若否,进入步骤S310,若是,进入步骤S311;
S310:暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,然后将该一个逻辑内核检测出的出现的冲突的重装的条件的相关冲突重装的内容发送到该一个逻辑内核的管理系统,然后该一个逻辑内核的管理系统接收该冲突的重装的条件的相关冲突重装的内容,并该一个逻辑内核在现在发送该一个逻辑内核出现的该冲突的重装的条件下的该冲突的重装的相关的重装的取指的开头的地址到各个非内存操作程序点缓存,然后以前的该一个逻辑内核的缓存写入后端寄存器的程序点序列号不作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后以该一个逻辑内核出现的该冲突的重装的条件下的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后按世界上的社会现有的发明所默认发明过的方法进行清除本发明所述的非延迟系统的流水线中该一个逻辑内核出现的该冲突的重装的条件下的该冲突的重装所要清除的该一个逻辑内核的指令及按世界上的社会现有的发明所默认发明过的方法进行该一个逻辑内核出现的该冲突的重装的条件下的该冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后按世界上的社会现有的发明所默认发明过的方法进行向非内存操作程序点缓存取该一个逻辑内核出现的该冲突的重装的条件下的该冲突的重装所要取的该一个逻辑内核的指令,然后在下一时钟进入步骤S301;
S311:该一个逻辑内核保存起点标记,然后将该一个逻辑内核的该内存存储操作的有冲突的程序点序列号及该一个逻辑内核检测出的出现的冲突的重装的条件的相关冲突重装的内容发送到该一个逻辑内核设置的内存操作程序点缓存,然后该一个逻辑内核设置的内存操作程序点缓存接收该一个逻辑内核的该内存存储操作的有冲突的程序点序列号及该一个逻辑内核检测出的出现的冲突的重装的条件的相关冲突重装的内容,然后在下一时钟进入步骤S301;
S312:然后采用世界上的社会现有的发明所默认发明过的方法处理该一个逻辑内核的取指与非延迟系统的流水线的该一个逻辑内核工作,然后在下一时钟进入步骤S301;
步骤S301~S312详细描述了开始取指的过程,提供了一种可以让一个静态缓存中取指的办法。并且,步骤S301~S308提供了内存作程序点缓存如何根据冲突指令的执行情况进行取指的,可以解决当在发生冲突后如何取指的问题。
一实施例中,步骤S312之后还包括:
S401:该一个逻辑内核的系统保存五标记,清除该一个逻辑内核的系统保存的一标记二标记三标记四标记,清除该一个逻辑内核保存的记录标记,设定一个存入的程序点序列号,然后给设定的一个存入的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,设定指令行的某一个指令行行位置作为最终的行,进入步骤S402;
S402:检测该一个逻辑内核设置的内存操作程序点缓存是否在现在既收到程序点序列号又收到相关冲突重装的内容,若否,进入步骤S408,若是,进入步骤S403;
S403:清除该一个逻辑内核保存的结束标记,清除内存操作程序点缓存与指令行的读取寻址工作,然后清除内存操作程序点缓存与指令行的取指工作,然后清除内存操作程序点缓存取指流水线的该一个逻辑内核的指令,检测该一个逻辑内核是否出现世界上的社会现有的发明所默认发明过的方法中加载冒险执行的非冲突的重装的条件,若是,则进入步骤S431,若否,则进入步骤S404;
S404:检测最终的行有没有该一个逻辑内核的指令,若最终的行有该一个逻辑内核的指令,进入步骤S405,若最终的行没有该一个逻辑内核的指令,进入步骤S406;
S405:以前的该一个逻辑内核的缓存结束寄存器的程序点序列号不作为该一个逻辑内核的缓存结束寄存器的程序点序列号,然后删除该一个逻辑内核的缓存结束寄存器保存的程序点序列号,并找最终的行的最后一个该一个逻辑内核的指令,然后以取找到的最终的行的最后一个该一个逻辑内核的指令的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,然后以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,进入步骤S407;
S406:以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,进入步骤S407;
S407:检测该一个逻辑内核是否保存起点标记,若是,进入步骤S409,若否,进入步骤S414;
S408:检测该一个逻辑内核是否出现世界上的社会现有的发明所默认发明过的方法中加载冒险执行的非冲突的重装的条件,若是,则进入步骤S431,若否,则进入步骤S413;
S409:取消实施上流水线的该一个逻辑内核的指令不经延迟系统的流水线直接进入下流水线,然后实施上流水线的该一个逻辑内核的指令经延迟系统的流水线进入下流水线,然后按世界上的社会现有的发明所默认发明过的方法进行清除下流水线的该一个逻辑内核设置的内存操作程序点缓存现在收到的相关冲突重装的内容的相关冲突重装的冲突的重装所要清除的该一个逻辑内核的指令,然后按世界上的社会现有的发明所默认发明过的方法进行该一个逻辑内核设置的内存操作程序点缓存现在收到的相关冲突重装的内容的相关冲突重装的冲突的重装在本发明所述的下流水线中的整理,在该一个逻辑内核设置的内存操作程序点缓存现在收到程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差的值上设置丙范围,然后检测该一个逻辑内核设置的内存操作程序点缓存现在收到程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差的值是否在丙范围,若是,进入步骤S410,若否,进入步骤S412;
S410:清除最终的行该一个逻辑内核的指令的不取标记,清除指令行的各个行中该一个逻辑内核的指令的不可取标记及该一个逻辑内核的指令的始标记,系统在指令行中找其指令的程序点序列号与该一个逻辑内核设置的内存操作程序点缓存现在收到程序点序列号相同的该一个逻辑内核的指令,然后把系统在指令行中找到的其指令的程序点序列号与该一个逻辑内核设置的内存操作程序点缓存现在收到程序点序列号相同的该一个逻辑内核的指令进行始标记,然后将其顺序执行顺序位于有始标记的该一个逻辑内核的指令的之前的那些该一个逻辑内核的指令进行不可取标记,然后以前的该一个逻辑内核的可取行不作为的该一个逻辑内核的可取行,然后以前作为的该一个逻辑内核的可取行将其撤消,然后检测指令行的各个指令行行位置中那一个指令行行位置储存有始标记的该一个逻辑内核的指令,然后把在指令行的各个指令行行位置中储存有始标记的该一个逻辑内核的指令的那一个指令行行位置作为该一个逻辑内核的可取行,进入步骤S411;
S411:然后在该一个逻辑内核的可取行中以有始标记的该一个逻辑内核的指令为开始进行按原本顺序的早与晚进行以先早后晚的取指方式一个一个取指令的办法取没有不可取标记的该一个逻辑内核的指令及没有不可取标记的该一个逻辑内核的指令的各种编号及没有不可取标记的该一个逻辑内核的指令的相关标记和没有不可取标记的该一个逻辑内核的指令的程序点序列号,该一个逻辑内核的系统保存一标记,并清除该一个逻辑内核的系统保存的二标记三标记四标记五标记,并删除该一个逻辑内核的系统保存的二标记三标记四标记五标记以此进行该一个逻辑内核的系统不保存二标记三标记四标记五标记。然后该一个逻辑内核保存结束标记,清除该一个逻辑内核保存的起点标记,然后进入步骤S430;
S412:清除最终的行该一个逻辑内核的指令的不取标记,清除该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号,然后先将该一个逻辑内核设置的内存操作程序点缓存现在收到的程序点序列号保存到该一个逻辑内核设置的内存操作程序点缓存的读取地址中,然后取下该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号在该一个逻辑内核设置的内存操作程序点缓存中所对应的该一个逻辑内核设置的内存操作程序点缓存位置所储存的指令、编号、相关标记、程序点序列号,并现在的从该程序点序列号对应位置所取的编号作为现在的从该程序点序列号对应位置所取的该指令的编号,并现在的从该程序点序列号对应位置所取的相关标记作为现在的从该程序点序列号对应位置所取的该指令的相关标记,并现在的从该程序点序列号对应位置所取的程序点序列号作为现在的从该程序点序列号对应位置所取的该指令的程序点序列号,清除该一个逻辑内核的读取记录器所保存的程序点序列号,然后将在该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号进行加一后只保留某范围数位的程序点序列号保存到该一个逻辑内核的读取记录器中,然后清除该一个逻辑内核保存的起点标记,在该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差上设定辛范围,然后检测该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差是否在设定的辛范围,若是,进入步骤S422,若否,进入步骤S423;
S413:检测该一个逻辑内核的管理系统是否现在接收了相关冲突重装的内容,若是,进入步骤S435,若否,进入步骤S414;
S414:检测最终的行有没有该一个逻辑内核的指令,若最终的行有该一个逻辑内核的指令,进入步骤S415,若最终的行没有该一个逻辑内核的指令,进入步骤S416;
S415:先删除该一个逻辑内核的缓存结束寄存器保存的程序点序列号,以前的该一个逻辑内核的缓存结束寄存器的程序点序列号不作为该一个逻辑内核的缓存结束寄存器的程序点序列号,然后找最终的行的最后一个的该一个逻辑内核的指令,然后以取找到的最终的行的最后一个的该一个逻辑内核的指令的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,然后以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,进入步骤S417;
S416:以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,进入步骤S417;
S417:检测该一个逻辑内核的系统是否保存一标记,若是,进入步骤S411,若否进入步骤S418;
S418:检测该一个逻辑内核的系统是否保存三标记,若是,进入步骤S421,若否进入步骤S419;
S419:检测该一个逻辑内核的系统是否保存四标记,若是,进入步骤S424,若否进入步骤S420;
S420:检测该一个逻辑内核的系统是否保存五标记,若是,进入步骤S429;
S421:然后清除该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号,然后将该一个逻辑内核的读取记录器所保存的程序点序列号保存到该一个逻辑内核设置的内存操作程序点缓存的读取地址中,然后取下该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号在该一个逻辑内核设置的内存操作程序点缓存中所对应的该一个逻辑内核设置的内存操作程序点缓存位置所储存的指令、编号、相关标记、程序点序列号,并现在的从该程序点序列号对应位置所取的编号作为现在的从该程序点序列号对应位置所取的该指令的编号,并现在的从该程序点序列号对应位置所取的相关标记作为现在的从该程序点序列号对应位置所取的该指令的相关标记,并现在的从该程序点序列号对应位置所取的程序点序列号作为现在的从该程序点序列号对应位置所取的该指令的程序点序列号,清除该一个逻辑内核的读取记录器所保存的程序点序列号,然后将在该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号进行加一后只保留某范围数位的程序点序列号保存到该一个逻辑内核的读取记录器中,在该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差上设定辛范围,然后检测该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差是否在设定的辛范围,若是,进入步骤S422,若否,进入步骤S423;
S422:该一个逻辑内核的系统保存四标记,清除该一个逻辑内核的系统保存的一标记二标记三标记五标记,并删除该一个逻辑内核的系统保存的一标记二标记三标记五标记以此进行该一个逻辑内核的系统不保存一标记二标记三标记五标记,该一个逻辑内核保存结束标记,进入步骤S430;
S423:然后该一个逻辑内核的系统保存三标记,并清除该一个逻辑内核的系统保存的一标记二标记四标记五标记,并删除该一个逻辑内核的系统保存的一标记二标记四标记五标记以此进行该一个逻辑内核的系统不保存一标记二标记四标记五标记,(从开头取然后设一),进入步骤S430;
S424:检测最终的行有没有该一个逻辑内核的指令,若有该一个逻辑内核的指令,进入步骤S425,若没有该一个逻辑内核的指令,进入步骤S426;
S425:在最终的行中找其指令本身的程序点序列号与该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号相同的该一个逻辑内核的指令,然后把在最终的行中找到的其指令本身的程序点序列号与该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号相同的该一个逻辑内核的指令进行不取标记,然后将其顺序执行顺序位于进行不取标记该一个逻辑内核的指令之前那些该一个逻辑内核的指令进行不取标记,进入步骤S426;
S426:检测最终的行内的没有不取标记的该一个逻辑内核的指令的顺序执行顺序的早与晚,然后开始进行按原本顺序执行的顺序的早与晚进行以先早后晚的取指方式一个一个取指令的办法取最终的行内的没有不取标记的该一个逻辑内核的指令,检测指令行的各个行与该一个逻辑内核的内存操作程序点缓存取指流水线及该一个逻辑内核设置的内存操作程序点缓存的取指端是否全部都没有该一个逻辑内核的指令,若是,进入步骤S427,若否,进入步骤S428;
S427:该一个逻辑内核的系统保存五标记,清除该一个逻辑内核的系统保存的一标记二标记三标记四标记,并删除该一个逻辑内核的系统保存的一标记二标记三标记四标记以此进行该一个逻辑内核的系统不保存一标记二标记三标记四标记,进入步骤S429;
S428:该一个逻辑内核的系统保存四标记,清除该一个逻辑内核的系统保存的一标记二标记三标记五标记,并删除该一个逻辑内核的系统保存的一标记二标记三标记五标记以此进行该一个逻辑内核的系统不保存一标记二标记三标记五标记,进入步骤S430;
S429:取消实施上流水线的该一个逻辑内核的指令经延迟系统的流水线进入下流水线,然后实施上流水线的该一个逻辑内核的指令不经延迟系统的流水线直接进入下流水线,该一个逻辑内核的系统保存五标记,然而不经延迟系统的流水线直接进入下流水线的该一个逻辑内核的指令的还没有被清除的该一个逻辑内核的指令按其顺序执行的顺序的早与晚进行以先早后晚方式一个一个排列办法构成上次的从指令行与该一个逻辑内核设置的内存操作程序点缓存取的该一个逻辑内核的指令的程序之后的顺序执行的程序用于执行,然后用于执行的该一个逻辑内核的指令构成的程序按世界上的社会现有的发明所默认发明过的方法中乱序执行的处理办法进行执行,然后实施执行程序的任务,然后进入步骤S402;
S430:然后从指令行与该一个逻辑内核设置的内存操作程序点缓存中取该一个逻辑内核的指令按其取指的顺序的早与晚进行以先早后晚方式一个一个排列的办法排列成程序从而构成最近一次冲突的重装的顺序执行的程序用于执行,然后用于执行的该一个逻辑内核的指令构成的程序按世界上的社会现有的发明所默认发明过的方法中乱序执行的处理办法进行执行,然后实施执行程序的任务,然后进入步骤S402;
S431:取消实施上流水线的该一个逻辑内核的指令经延迟系统的流水线进入下流水线,然后实施上流水线的该一个逻辑内核的指令不经延迟系统的流水线直接进入下流水线,该一个逻辑内核的系统保存五标记,并清除该一个逻辑内核的系统保存的一标记二标记三标记四标记,并删除该一个逻辑内核的系统保存的一标记二标记三标记四标记以此该一个逻辑内核的系统不保存一标记二标记三标记四标记,然后该一个逻辑内核保存结束标记,清除该一个逻辑内核保存的起点标记,暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,然后按世界上的社会现有的发明所默认发明过的方法进行清除非延迟系统的流水线的该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要清除的该一个逻辑内核的指令,然后按世界上的社会现有的发明所默认发明过的方法进行该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后按世界上的社会现有的发明所默认发明过的方法向非内存操作程序点缓存取该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要取的该一个逻辑内核的指令,而取下的该一个逻辑内核的指令以世界上的社会现有的发明所默认发明过的方法构成取下的程序作为该非冲突的重装的条件下该非冲突的重装的程序用于执行,并用于执行的该一个逻辑内核的指令构成的程序按世界上的社会现有的发明所默认发明过的方法中乱序执行的处理办法进行执行,清除该一个逻辑内核保存的起点标记,清除内存操作程序点缓存取指流水线的该一个逻辑内核的指令,在该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差的值上设置丁范围,然后检测该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差的值是否在丁范围,若是,则进入步骤S432,若否则,进入步骤S433;
S432:以前的该一个逻辑内核的缓存结束寄存器的程序点序列号不作为该一个逻辑内核的缓存结束寄存器的程序点序列号,然后删除该一个逻辑内核的缓存结束寄存器保存的程序点序列号,然后将该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,然后以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,清除指令行的各个行的该一个逻辑内核的指令,进入步骤S402;
S433:系统在指令行中找其指令的程序点序列号与该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号相同的该一个逻辑内核的指令,然后把系统在指令行中找到的其指令的程序点序列号与该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号相同的该一个逻辑内核的指令进行后结标记,然后将指令行的各个行中其顺序执行顺序位于有后结标记的该一个逻辑内核的指令之后的那些该一个逻辑内核的指令清除,然后将指令行的各个行中有后结标记的该一个逻辑内核的指令清除,检测最终的行有没有该一个逻辑内核的指令,若有该一个逻辑内核的指令,进入步骤S434,若没有该一个逻辑内核的指令,进入步骤S402;
S434:以前的该一个逻辑内核的缓存结束寄存器的程序点序列号不作为该一个逻辑内核的缓存结束寄存器的程序点序列号,然后删除该一个逻辑内核的缓存结束寄存器保存的程序点序列号,然后找指令清除后的最终的行的顺序执行顺序上的最后一个的该一个逻辑内核的指令,然后将找出的指令清除后的最终的行的顺序执行顺序上的最后一个的该一个逻辑内核的指令的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,然后以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,进入步骤S402;
S435:然后取消实施上流水线的该一个逻辑内核的指令经延迟系统的流水线进入下流水线,然后实施上流水线的该一个逻辑内核的指令不经延迟系统的流水线直接进入下流水线,该一个逻辑内核的系统保存五标记,并清除该一个逻辑内核的系统保存的一标记二标记三标记四标记,并删除该一个逻辑内核的系统保存的一标记二标记三标记四标记以此该一个逻辑内核的系统不保存一标记二标记三标记四标记,然后该一个逻辑内核保存结束标记,清除该一个逻辑内核保存的起点标记,暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,然后进行清除非延迟系统的流水线的该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装所要清除的该一个逻辑内核的指令,然后进行该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后向非内存操作程序点缓存取该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装所要取的该一个逻辑内核的指令,而取下的该一个逻辑内核的指令构成取下的程序作为该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的程序用于执行,并用于执行的该一个逻辑内核的指令构成的程序按乱序执行的处理办法进行执行,清除该一个逻辑内核保存的起点标记,清除内存操作程序点缓存取指流水线的该一个逻辑内核的指令,在该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差的值上设置丁范围,然后检测该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差的值是否在丁范围,若是,则进入步骤S436,若否,则进入步骤S437;
S436:以前的该一个逻辑内核的缓存结束寄存器的程序点序列号不作为该一个逻辑内核的缓存结束寄存器的程序点序列号,然后删除该一个逻辑内核的缓存结束寄存器保存的程序点序列号,然后将该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,然后以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,清除指令行的各个行的该一个逻辑内核的指令,进入步骤S402;
S437:系统在指令行中找其指令的程序点序列号与该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号相同的该一个逻辑内核的指令,然后把系统在指令行中找到的其指令的程序点序列号与该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号相同的该一个逻辑内核的指令进行后结标记,然后将指令行的各个行中其顺序执行顺序位于有后结标记的该一个逻辑内核的指令之后的那些该一个逻辑内核的指令清除,然后将指令行的各个行中有后结标记的指令清除,检测最终的行有没有该一个逻辑内核的指令,若有该一个逻辑内核的指令,进入步骤S438,若没有该一个逻辑内核的指令,进入步骤S402;
S438:以前的该一个逻辑内核的缓存结束寄存器的程序点序列号不作为该一个逻辑内核的缓存结束寄存器的程序点序列号,然后删除该一个逻辑内核的缓存结束寄存器保存的程序点序列号,然后找指令清除后的最终的行的顺序执行顺序上的最后一个的该一个逻辑内核的指令,然后将找出的指令清除后的最终的行的顺序执行顺序上的最后一个的该一个逻辑内核的指令的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,然后以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,进入步骤S402;
步骤S401~S438提供了开始停止取指的过程,可以让在内存操作程序点缓存取完后向其它缓存中取指作准备,并且详细描述了其它缓存是如何根据内存操作程序点缓存的执行情况进行取指的。
一实施例中,步骤S308或步骤S438之后还包括:
S500:检测该一个逻辑内核的该非内存操作程序点缓存有没有取该一个逻辑内核的指令,若有该一个逻辑内核的指令,进入步骤S501,若没有该一个逻辑内核的指令,进入步骤S502;
S501:取该一个逻辑内核的该非内存操作程序点缓存所取的该一个逻辑内核的指令的最后一个的该一个逻辑内核的指令的程序点序列号保存在该一个逻辑内核的该非内存操作程序点缓存的开启寄存器中,进入步骤S502;
S502:检测该一个逻辑内核设置的内存操作程序点缓存是否现在收到程序点序列号,清除本发明所述的内存操作程序点缓存取指流水线的该一个逻辑内核的指令,若否,进入步骤S517,若是,进入步骤S503;
S503:暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,设置一个某该非内存操作程序点缓存设定的数,然后清除系统中保存的该一个逻辑内核的该非内存操作程序点缓存的缓存序列号,然后将该一个逻辑内核的该非内存操作程序点缓存的开启寄存器保存的程序点序列号减去某该非内存操作程序点缓存设定的数后只保留某范围数位构成该一个逻辑内核的该非内存操作程序点缓存的缓存序列号,然后将该一个逻辑内核的该非内存操作程序点缓存的开启寄存器保存的程序点序列号减去某该非内存操作程序点缓存设定的数后只保留某范围数位构成该一个逻辑内核的该非内存操作程序点缓存的缓存序列号当中构成的该一个逻辑内核的该非内存操作程序点缓存的缓存序列号保存在系统中,进入步骤S507;
S507:检测该一个逻辑内核是否出现世界上的社会现有的发明所默认发明过的方法中加载冒险执行的非冲突的重装的条件,若是,则进入步骤S508,若否,则进入步骤S509;
S508:以前的该一个逻辑内核的缓存写入后端寄存器的程序点序列号不作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后以该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后清除上流水线的该一个逻辑内核的指令,然后按世界上的社会现有的发明所默认发明过的方法清除非延迟系统的流水线的该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要清除的该一个逻辑内核的指令,然后按世界上的社会现有的发明所默认发明过的方法进行该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后进行实施该一个逻辑内核的该线程按世界上的社会现有的发明所默认发明过的方法从该非内存操作程序点缓存中取该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要取的该一个逻辑内核的指令,然后在下一时钟进入步骤S500,以此循环;
S509:检测该一个逻辑内核是否保存起点标记,若是,步骤S507,若否,步骤S510;
S510:检测该一个逻辑内核是否保存结束标记,若是,步骤S512,若否,步骤S511;
S511:在该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号与系统保存的该一个逻辑内核的该非内存操作程序点缓存的缓存序列号相差的值上设定戊范围,然后检测是否出现该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号与系统保存的该一个逻辑内核的该非内存操作程序点缓存的缓存序列号相差的值在设定的戊范围,若是,进入步骤S512,若否,则进入步骤S507;
S512:检测该一个逻辑内核的该线程是否允许取该一个逻辑内核的指令,若是,进入步骤S513,若否,进入步骤S512;
S513:进行实施该一个逻辑内核的该线程采用世界上的社会现有的发明所默认发明过的方法从该非内存操作程序点缓存中取该一个逻辑内核的该非内存操作程序点缓存的本发明所述的该一个逻辑内核的开启寄存器的程序点序列号之后的指令构成该一个逻辑内核的该非内存操作程序点缓存的本发明所述的该一个逻辑内核的开启寄存器的程序点序列号之后的该一个逻辑内核的指令的程序用于执行,则是非内存操作程序点缓存取指端从非内存操作程序点缓存取的该一个逻辑内核的指令,取的指令是该一个逻辑内核的该非内存操作程序点缓存的本发明所述的该一个逻辑内核的开启寄存器的程序点序列号之后的该一个逻辑内核的指令,然后在下一时钟进入步骤S500,以此循环;
S517:检测该一个逻辑内核的管理系统是否现在接收了相关冲突重装的内容,若是,进入步骤S518,若否,进入步骤S520;
S518:暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,清除上流水线的该一个逻辑内核的指令,进入步骤S519;
S519:然后以前的该一个逻辑内核的缓存写入后端寄存器的程序点序列号不作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后以该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后按世界上的社会现有的发明所默认发明过的方法进行清除非延迟系统的流水线的该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装所要清除的该一个逻辑内核的指令,然后按世界上的社会现有的发明所默认发明过的方法进行该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后进行实施该一个逻辑内核的该线程采用世界上的社会现有的发明所默认发明过的方法从该非内存操作程序点缓存中取该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装所要取的该一个逻辑内核的指令,然后在下一时钟进入步骤S500,以此循环;
S520:检测该一个逻辑内核是否出现世界上的社会现有的发明所默认发明过的方法中加载冒险执行的非冲突的重装的条件,若是,进入步骤S521,若否,在下一时钟进入步骤S522,以此循环;
S521:暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,清除上流水线的该一个逻辑内核的指令,然后以前的该一个逻辑内核的缓存写入后端寄存器的程序点序列号不作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后按世界上的社会现有的发明所默认发明过的方法进行清除非延迟系统的流水线的该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要清除的该一个逻辑内核的指令,然后按世界上的社会现有的发明所默认发明过的方法进行该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后以该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后进行实施该一个逻辑内核的该线程按世界上的社会现有的发明所默认发明过的方法从该非内存操作程序点缓存中取该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要取该一个逻辑内核的指令,然后在下一时钟进入步骤S500,以此循环;
S522:进行实施该一个逻辑内核的该线程采用世界上的社会现有的发明所默认发明过的方法从该非内存操作程序点缓存中取该一个逻辑内核的指令,然后在下一时钟进入步骤S500,以此循环;
步骤S500~S511详细描述了非内存操作程序点缓存与内存操作程序点缓存之间的对接步骤。可以很好地对接非内存操作程序点缓存与内存操作程序点缓存之间的断开程序。
步骤S511详细描述了一般情况下如何处理。
较佳实施例中,步骤S3还包括:当取用的指令到达检测该处理器流水线所存入内存操作程序点缓存的指令本身的程序点序列号,就说明已取用完,就不用向内存操作程序点缓存取指令。
较佳实施例中,步骤S3还包括:在内存作程序点缓存取指令时阻断内存作程序点缓存从非内存操作程序点缓存取指令而存入内存作程序点缓存,直至内存作程序点缓存取用后才不阻断内存作程序点缓存从非内存操作程序点缓存取指令。
较佳实施例中,内存操作程序点缓存取下的指令后期处理方法可以为:当从内存操作程序点缓存取下的指令发送到解码单元之后的单元进行以解码单元之后的单元为开始的以后过程;或者为:当从内存操作程序点缓存取下的指令发送到重命名单元之后的单元进行以重命名单元之后的单元为开始的以后过程。
S4:进行把从内存操作程序点缓存与指令行取下的那些指令及从内存操作程序点缓存与指令行取下的那些指令的各种编号及从内存操作程序点缓存与指令行取下的那些指令的相关标记及从内存操作程序点缓存与指令行取下的那些指令的程序点序列号发送到本发明所述的解码单元之后过程的除掉内存操作程序点缓存指令行单元的的单元后进行以所述的解码单元之后过程的除掉内存操作程序点缓存指令行单元的的单元为开始的解码单元的之以后的过程;
S5:进行把那些从内存操作程序点缓存与指令行取下的那些指令及从内存操作程序点缓存与指令行取下的那些指令的各种编号及从内存操作程序点缓存与指令行取下的那些指令的相关标记及从内存操作程序点缓存与指令行取下的那些指令的程序点序列号发送到本发明所述的重命名单元之后过程的除掉内存操作程序点缓存指令行单元的的单元后进行以所述的重命名单元之后过程的除掉内存操作程序点缓存指令行单元的的单元为开始的重命名的之以后的过程。
此处公开的仅为本发明的优选实施例,本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,并不是对本发明的限定。任何本领域技术人员在说明书范围内所做的修改和变化,均应落在本发明所保护的范围内。
Claims (10)
1.一种降低内存读取乱序的方法,其特征在于,包括以下步骤:
S1:该一个逻辑内核设置指令行以及内存操作程序点缓存以及缓存结束寄存器以及开启寄存器及读取记录器以及写入后端寄存器以及内存操作程序点缓存处理工作相关辅助零件及该一个逻辑内核的管理系统及该一个逻辑内核的系统,所述的内存操作程序点缓存处理工作相关辅助零件有则指令行以及缓存结束寄存器以及开启寄存器及读取记录器以及写入后端寄存器,所述的指令行称为内存操作程序点缓存存入缓冲;
S2:产生所述该一个逻辑内核的指令的自身的程序点序列号,将所述该一个逻辑内核的指令按自身的程序点序列号存入对应该一个逻辑内核设置的内存操作程序点缓存的位置中;
S3:从该一个逻辑内核设置的内存操作程序点缓存中取指令。
2.根据权利要求1所述的降低内存读取乱序的方法,其特征在于,所述步骤S2还包括:检测所述该一个逻辑内核的指令存入的内存操作程序点缓存的位置,然后将该一个逻辑内核的指令的相关标记及各种编号,存入内存操作程序点缓存的该一个逻辑内核的指令自身的程序点序列号所存入的位置中;对应地,
所述步骤S3还包括:从该一个逻辑内核设置的内存操作程序点缓存中取指令的时候,同时将所存入的位置中所存的相关标记及各种编号一同取走。
3.根据权利要求1所述的降低内存读取乱序的方法,其特征在于,所述步骤S2具体包括:
S100:事前设置步骤01,检测该一个逻辑内核的指令是否就是在该一个逻辑内核设置的内存操作程序点缓存没有指令的情况下该一个逻辑内核处理的该一个逻辑内核的指令的第一个指令,若是,进入步骤S101,事前设置步骤02,若否,进入步骤S102,执行存入程序点序列号00;
S101:事前设置步骤02,设定一个甲程序点序列号,然后给该一个逻辑内核的指令本身一个设定的甲程序点序列号,并且本身的指令是作为其本身采用的程序点序列号的指令,并该一个逻辑内核的指令本身的程序点序列号以作为一个地址用于该一个逻辑内核设置的内存操作程序点缓存的寻址,然后进入步骤S106;
S102:执行存入程序点序列号00,检测该一个逻辑内核是否出现该重装,判断该一个逻辑内核是否出现该重装:若否,进入步骤S103,执行存入程序点序列号01,若是,进入步骤S104,执行存入程序点序列号02;
S103:执行存入程序点序列号01,然后该一个逻辑内核的指令先采用顺序执行中该一个逻辑内核的指令的上一个指令的程序点序列号加一后只保留某范围数位的程序点序列号作为本身的程序点序列号,并且本身的指令是作为其本身采用的程序点序列号的指令,并该一个逻辑内核的指令本身的程序点序列号以作为一个地址用于该一个逻辑内核设置的内存操作程序点缓存的寻址,进入步骤S106;
S104:执行存入程序点序列号02,检测该一个逻辑内核的指令是否该重装的重新装入的程序的第一个指令,若否,进入步骤S103,执行存入程序点序列号01,若是,进入步骤S105;
S105:该一个逻辑内核的指令则采用该重装未更正前的第一个指令的程序点序列号作为本身的程序点序列号,并且本身的指令是作为其本身采用的程序点序列号的指令,并该一个逻辑内核的指令本身的程序点序列号以作为一个地址用于该一个逻辑内核设置的内存操作程序点缓存的寻址,进入步骤S106;
S106:取存安排,该一个逻辑内核的指令经重命名后从处理器流水线的重命名单元上取已重命名的该一个逻辑内核的指令及已重命名的该一个逻辑内核的指令的一切资料,然后取下的该一个逻辑内核的指令及该一个逻辑内核的指令的各种编号及该一个逻辑内核的指令的相关标记和该一个逻辑内核的指令的程序点序列号按本身属于的指令本身的程序点序列号存入本身属于的指令本身的程序点序列号所对应的该一个逻辑内核设置的内存操作程序点缓存位置中,以此进行将该一个逻辑内核的指令放入该一个逻辑内核设置的内存操作程序点缓存系统中,并安排取下的该一个逻辑内核的指令及该一个逻辑内核的指令的各种编号及该一个逻辑内核的指令的相关标记和该一个逻辑内核的指令的程序点序列号先标记为该一个逻辑内核的指令的方式在下一时钟移走到指令行第一行,并保存移到指令行第一行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S107;
S107:将该一个逻辑内核的指令的一切资料移到指令行第一行时的时钟设为该一个逻辑内核的指令第一行时钟,移到第一行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第一行时钟的下一时钟移走到指令行第二行,并指令行第一行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第二行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S108;
S108:将该一个逻辑内核的指令的一切资料移到指令行第二行时的时钟设为该一个逻辑内核的指令第二行时钟,移到第二行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第二行时钟的下一时钟移走到指令行第三行,并指令行第二行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第三行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S109;
S109:将该一个逻辑内核的指令的一切资料移到指令行第三行时的时钟设为该一个逻辑内核的指令第三行时钟,移到第三行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第三行时钟的下一时钟移走到指令行第四行,并指令行第三行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第四行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S110;
S110:将该一个逻辑内核的指令的一切资料移到指令行第四行时的时钟设为该一个逻辑内核的指令第四行时钟,移到第四行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第四行时钟的下一时钟移走到指令行第五行,并指令行第四行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第五行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S111;
S111:将该一个逻辑内核的指令的一切资料移到指令行第五行时的时钟设为该一个逻辑内核的指令第五行时钟,移到第五行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第五行时钟的下一时钟移走到指令行第六行,并指令行第五行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第六行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S112;
S112:指令行第六行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序。
4.根据权利要求1所述的降低内存读取乱序的方法,其特征在于,所述步骤S2具体包括:
S200:事前设置步骤11,检测该一个逻辑内核的指令是否就是在该一个逻辑内核设置的内存操作程序点缓存没有指令的情况下该一个逻辑内核处理的该一个逻辑内核的指令的第一个指令,若是,进入步骤S201,事前设置步骤12,若否,进入步骤S202,执行存入程序点序列号10;
S201:事前设置步骤12,设定一个甲程序点序列号,然后给该一个逻辑内核的指令本身一个设定的甲程序点序列号,并且本身的指令是作为其本身采用的程序点序列号的指令,并该一个逻辑内核的指令本身的程序点序列号以作为一个地址用于该一个逻辑内核设置的内存操作程序点缓存的寻址,然后进入步骤S206;
S202:执行存入程序点序列号10,检测该一个逻辑内核是否出现该重装,判断该一个逻辑内核是否出现该重装:若否,进入步骤S203,执行存入程序点序列号11,若是,进入步骤S204,执行存入程序点序列号12;
S203:执行存入程序点序列号11,然后该一个逻辑内核的指令先采用顺序执行中该一个逻辑内核的指令的上一个指令的程序点序列号加一后只保留某范围数位的程序点序列号作为本身的程序点序列号,并且本身的指令是作为其本身采用的程序点序列号的指令,并该一个逻辑内核的指令本身的程序点序列号以作为一个地址用于该一个逻辑内核设置的内存操作程序点缓存的寻址,进入步骤S206;
S204:执行存入程序点序列号12,检测该一个逻辑内核的指令是否该重装的重新装入的程序的第一个指令,若否,进入步骤S203,执行存入程序点序列号11,若是,进入步骤S205;
S205:该一个逻辑内核的指令则采用该重装未更正前的第一个指令的程序点序列号作为本身的程序点序列号,并且本身的指令是作为其本身采用的程序点序列号的指令,并该一个逻辑内核的指令本身的程序点序列号以作为一个地址用于该一个逻辑内核设置的内存操作程序点缓存的寻址,进入步骤S206;
S206:取存安排,该一个逻辑内核的指令经解码后从处理器流水线的解码单元与已解码的指令缓存取指单元上取那些从非内存操作程序点缓存取下的已解码的该一个逻辑内核的指令及已解码的该一个逻辑内核的指令的一切资料,然后取下的该一个逻辑内核的指令及该一个逻辑内核的指令的各种编号及该一个逻辑内核的指令的相关标记和该一个逻辑内核的指令的程序点序列号按本身属于的指令本身的程序点序列号存入本身属于的指令本身的程序点序列号所对应的该一个逻辑内核设置的内存操作程序点缓存位置中,以此进行将该一个逻辑内核的指令放入该一个逻辑内核设置的内存操作程序点缓存系统中,并安排取下的该一个逻辑内核的指令及该一个逻辑内核的指令的各种编号及该一个逻辑内核的指令的相关标记和该一个逻辑内核的指令的程序点序列号先标记为该一个逻辑内核的指令的方式在下一时钟移走到指令行第一行,并保存移到指令行第一行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S207;
S207:将该一个逻辑内核的指令的一切资料移到指令行第一行时的时钟设为该一个逻辑内核的指令第一行时钟,移到第一行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第一行时钟的下一时钟移走到指令行第二行,并指令行第一行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第二行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S208;
S208:将该一个逻辑内核的指令的一切资料移到指令行第二行时的时钟设为该一个逻辑内核的指令第二行时钟,移到第二行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第二行时钟的下一时钟移走到指令行第三行,并指令行第二行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第三行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S209;
S209:将该一个逻辑内核的指令的一切资料移到指令行第三行时的时钟设为该一个逻辑内核的指令第三行时钟,移到第三行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第三行时钟的下一时钟移走到指令行第四行,并指令行第三行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第四行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S210;
S210:将该一个逻辑内核的指令的一切资料移到指令行第四行时的时钟设为该一个逻辑内核的指令第四行时钟,移到第四行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第四行时钟的下一时钟移走到指令行第五行,并指令行第四行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第五行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S211;
S211:将该一个逻辑内核的指令的一切资料移到指令行第五行时的时钟设为该一个逻辑内核的指令第五行时钟,移到第五行的该一个逻辑内核的指令的一切资料在该一个逻辑内核的指令第五行时钟的下一时钟移走到指令行第六行,并指令行第五行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,并指令行第六行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序,然后下一时钟进入步骤S212;
S212:指令行第六行所保存的该一个逻辑内核的指令按顺序执行的先后进行以先早后晚方式一个一个排列构成从早到晚的该一个逻辑内核的指令的程序。
5.根据权利要求1所述的降低内存读取乱序的方法,其特征在于,所述步骤S3还包括:
S301:检测指令行第一行有没有该一个逻辑内核的指令,若指令行第一行有该一个逻辑内核的指令,进入步骤S302,若指令行第一行没有该一个逻辑内核的指令,进入步骤S303;
S302:先删除该一个逻辑内核的缓存写入后端寄存器保存的程序点序列号,以前的该一个逻辑内核的缓存写入后端寄存器的程序点序列号不作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后找指令行第一行顺序执行的最后一个的该一个逻辑内核的指令,然后以取找到的指令行第一行顺序执行的最后一个的该一个逻辑内核的指令的程序点序列号保存到该一个逻辑内核的缓存写入后端寄存器中,然后以该一个逻辑内核的缓存写入后端寄存器保存的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,进入步骤S304;
S303:以该一个逻辑内核的缓存写入后端寄存器保存的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,进入步骤S304;
S304:检测该一个逻辑内核是否出现内存加载操作与该内存存储操作发生冲突并该一个逻辑内核出现加载冒险执行的冲突的重装的条件,若是,进入步骤S306,若否,进入步骤S305;
S305:检测该一个逻辑内核是否出现加载冒险执行的非冲突的重装的条件,若是,进入步骤S307,若否,进入步骤S312;
S306:检测该一个逻辑内核是否出现加载冒险执行的非冲突的重装的条件,若是,进入步骤S307,若否,进入步骤S308;
S307:暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,然后以前的该一个逻辑内核的缓存写入后端寄存器的程序点序列号不作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后以该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后进行清除所述的非延迟系统的流水线中该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要清除的该一个逻辑内核的指令及进行该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后向非内存操作程序点缓存取该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要取的该一个逻辑内核的指令,然后在下一时钟进入步骤S301;
S308:以前的该一个逻辑内核的该内存存储操作的有冲突的程序点序列号不作为该一个逻辑内核的该内存存储操作的有冲突的程序点序列号,然后并将该一个逻辑内核检测出的出现的冲突的重装的条件下该冲突的重装的重装点的未更正前的第一个指令的程序点序列号设置为该一个逻辑内核的该内存存储操作的有冲突的程序点序列号,然后在该一个逻辑内核的该内存存储操作的有冲突的程序点序列号与该一个逻辑内核的缓存写入后端寄存器保存的程序点序列号相差的值上设定甲范围,然后进入步骤S309;
S309:检测该一个逻辑内核的该内存存储操作的有冲突的程序点序列号与该一个逻辑内核的缓存写入后端寄存器保存的程序点序列号相差的值是否不在设定的甲范围,若否,进入步骤S310,若是,进入步骤S311;
S310:暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,然后将该一个逻辑内核检测出的出现的冲突的重装的条件的相关冲突重装的内容发送到该一个逻辑内核的管理系统,然后该一个逻辑内核的管理系统接收该冲突的重装的条件的相关冲突重装的内容,并该一个逻辑内核在现在发送该一个逻辑内核出现的该冲突的重装的条件下的该冲突的重装的相关的重装的取指的开头的地址到各个非内存操作程序点缓存,然后以前的该一个逻辑内核的缓存写入后端寄存器的程序点序列号不作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后以该一个逻辑内核出现的该冲突的重装的条件下的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后进行清除所述的非延迟系统的流水线中该一个逻辑内核出现的该冲突的重装的条件下的该冲突的重装所要清除的该一个逻辑内核的指令及进行该一个逻辑内核出现的该冲突的重装的条件下的该冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后进行向非内存操作程序点缓存取该一个逻辑内核出现的该冲突的重装的条件下的该冲突的重装所要取的该一个逻辑内核的指令,然后在下一时钟进入步骤S301;
S311:该一个逻辑内核保存起点标记,然后将该一个逻辑内核的该内存存储操作的有冲突的程序点序列号及该一个逻辑内核检测出的出现的冲突的重装的条件的相关冲突重装的内容发送到该一个逻辑内核设置的内存操作程序点缓存,然后该一个逻辑内核设置的内存操作程序点缓存接收该一个逻辑内核的该内存存储操作的有冲突的程序点序列号及该一个逻辑内核检测出的出现的冲突的重装的条件的相关冲突重装的内容,然后在下一时钟进入步骤S301;
S312:然后处理该一个逻辑内核的取指与非延迟系统的流水线的该一个逻辑内核工作,然后在下一时钟进入步骤S301;
6.根据权利要求5所述的降低内存读取乱序的方法,其特征在于,所述步骤S312之后还包括:
S401:该一个逻辑内核的系统保存五标记,清除该一个逻辑内核的系统保存的一标记二标记三标记四标记,清除该一个逻辑内核保存的记录标记,设定一个存入的程序点序列号,然后给设定的一个存入的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,设定指令行的某一个指令行行位置作为最终的行,进入步骤S402;
S402:检测该一个逻辑内核设置的内存操作程序点缓存是否在现在既收到程序点序列号又收到相关冲突重装的内容,若否,进入步骤S408,若是,进入步骤S403;
S403:清除该一个逻辑内核保存的结束标记,清除内存操作程序点缓存与指令行的读取寻址工作,然后清除内存操作程序点缓存与指令行的取指工作,然后清除内存操作程序点缓存取指流水线的该一个逻辑内核的指令,检测该一个逻辑内核是否出现加载冒险执行的非冲突的重装的条件,若是,则进入步骤S431,若否,则进入步骤S404;
S404:检测最终的行有没有该一个逻辑内核的指令,若最终的行有该一个逻辑内核的指令,进入步骤S405,若最终的行没有该一个逻辑内核的指令,进入步骤S406;
S405:以前的该一个逻辑内核的缓存结束寄存器的程序点序列号不作为该一个逻辑内核的缓存结束寄存器的程序点序列号,然后删除该一个逻辑内核的缓存结束寄存器保存的程序点序列号,并找最终的行的最后一个该一个逻辑内核的指令,然后以取找到的最终的行的最后一个该一个逻辑内核的指令的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,然后以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,进入步骤S407;
S406:以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,进入步骤S407;
S407:检测该一个逻辑内核是否保存起点标记,若是,进入步骤S409,若否,进入步骤S414;
S408:检测该一个逻辑内核是否出现加载冒险执行的非冲突的重装的条件,若是,则进入步骤S431,若否,则进入步骤S413;
S409:取消实施上流水线的该一个逻辑内核的指令不经延迟系统的流水线直接进入下流水线,然后实施上流水线的该一个逻辑内核的指令经延迟系统的流水线进入下流水线,然后进行清除下流水线的该一个逻辑内核设置的内存操作程序点缓存现在收到的相关冲突重装的内容的相关冲突重装的冲突的重装所要清除的该一个逻辑内核的指令,然后进行该一个逻辑内核设置的内存操作程序点缓存现在收到的相关冲突重装的内容的相关冲突重装的冲突的重装在本发明所述的下流水线中的整理,在该一个逻辑内核设置的内存操作程序点缓存现在收到程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差的值上设置丙范围,然后检测该一个逻辑内核设置的内存操作程序点缓存现在收到程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差的值是否在丙范围,若是,进入步骤S410,若否,进入步骤S412;
S410:清除最终的行该一个逻辑内核的指令的不取标记,清除指令行的各个行中该一个逻辑内核的指令的不可取标记及该一个逻辑内核的指令的始标记,系统在指令行中找其指令的程序点序列号与该一个逻辑内核设置的内存操作程序点缓存现在收到程序点序列号相同的该一个逻辑内核的指令,然后把系统在指令行中找到的其指令的程序点序列号与该一个逻辑内核设置的内存操作程序点缓存现在收到程序点序列号相同的该一个逻辑内核的指令进行始标记,然后将其顺序执行顺序位于有始标记的该一个逻辑内核的指令的之前的那些该一个逻辑内核的指令进行不可取标记,然后以前的该一个逻辑内核的可取行不作为的该一个逻辑内核的可取行,然后以前作为的该一个逻辑内核的可取行将其撤消,然后检测指令行的各个指令行行位置中那一个指令行行位置储存有始标记的该一个逻辑内核的指令,然后把在指令行的各个指令行行位置中储存有始标记的该一个逻辑内核的指令的那一个指令行行位置作为该一个逻辑内核的可取行,进入步骤S411;
S411:然后在该一个逻辑内核的可取行中以有始标记的该一个逻辑内核的指令为开始进行按原本顺序的早与晚进行以先早后晚的取指方式一个一个取指令的办法取没有不可取标记的该一个逻辑内核的指令及没有不可取标记的该一个逻辑内核的指令的各种编号及没有不可取标记的该一个逻辑内核的指令的相关标记和没有不可取标记的该一个逻辑内核的指令的程序点序列号,该一个逻辑内核的系统保存一标记,并清除该一个逻辑内核的系统保存的二标记三标记四标记五标记,并删除该一个逻辑内核的系统保存的二标记三标记四标记五标记以此进行该一个逻辑内核的系统不保存二标记三标记四标记五标记。然后该一个逻辑内核保存结束标记,清除该一个逻辑内核保存的起点标记,然后进入步骤S430;
S412:清除最终的行该一个逻辑内核的指令的不取标记,清除该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号,然后先将该一个逻辑内核设置的内存操作程序点缓存现在收到的程序点序列号保存到该一个逻辑内核设置的内存操作程序点缓存的读取地址中,然后取下该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号在该一个逻辑内核设置的内存操作程序点缓存中所对应的该一个逻辑内核设置的内存操作程序点缓存位置所储存的指令、编号、相关标记、程序点序列号,并现在的从该程序点序列号对应位置所取的编号作为现在的从该程序点序列号对应位置所取的该指令的编号,并现在的从该程序点序列号对应位置所取的相关标记作为现在的从该程序点序列号对应位置所取的该指令的相关标记,并现在的从该程序点序列号对应位置所取的程序点序列号作为现在的从该程序点序列号对应位置所取的该指令的程序点序列号,清除该一个逻辑内核的读取记录器所保存的程序点序列号,然后将在该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号进行加一后只保留某范围数位的程序点序列号保存到该一个逻辑内核的读取记录器中,然后清除该一个逻辑内核保存的起点标记,在该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差上设定辛范围,然后检测该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差是否在设定的辛范围,若是,进入步骤S422,若否,进入步骤S423;
S413:检测该一个逻辑内核的管理系统是否现在接收了相关冲突重装的内容,若是,进入步骤S435,若否,进入步骤S414;
S414:检测最终的行有没有该一个逻辑内核的指令,若最终的行有该一个逻辑内核的指令,进入步骤S415,若最终的行没有该一个逻辑内核的指令,进入步骤S416;
S415:先删除该一个逻辑内核的缓存结束寄存器保存的程序点序列号,以前的该一个逻辑内核的缓存结束寄存器的程序点序列号不作为该一个逻辑内核的缓存结束寄存器的程序点序列号,然后找最终的行的最后一个的该一个逻辑内核的指令,然后以取找到的最终的行的最后一个的该一个逻辑内核的指令的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,然后以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,进入步骤S417;
S416:以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,进入步骤S417;
S417:检测该一个逻辑内核的系统是否保存一标记,若是,进入步骤S411,若否进入步骤S418;
S418:检测该一个逻辑内核的系统是否保存三标记,若是,进入步骤S421,若否进入步骤S419;
S419:检测该一个逻辑内核的系统是否保存四标记,若是,进入步骤S424,若否进入步骤S420;
S420:检测该一个逻辑内核的系统是否保存五标记,若是,进入步骤S429;
S421:然后清除该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号,然后将该一个逻辑内核的读取记录器所保存的程序点序列号保存到该一个逻辑内核设置的内存操作程序点缓存的读取地址中,然后取下该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号在该一个逻辑内核设置的内存操作程序点缓存中所对应的该一个逻辑内核设置的内存操作程序点缓存位置所储存的指令、编号、相关标记、程序点序列号,并现在的从该程序点序列号对应位置所取的编号作为现在的从该程序点序列号对应位置所取的该指令的编号,并现在的从该程序点序列号对应位置所取的相关标记作为现在的从该程序点序列号对应位置所取的该指令的相关标记,并现在的从该程序点序列号对应位置所取的程序点序列号作为现在的从该程序点序列号对应位置所取的该指令的程序点序列号,清除该一个逻辑内核的读取记录器所保存的程序点序列号,然后将在该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号进行加一后只保留某范围数位的程序点序列号保存到该一个逻辑内核的读取记录器中,在该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差上设定辛范围,然后检测该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差是否在设定的辛范围,若是,进入步骤S422,若否,进入步骤S423;
S422:该一个逻辑内核的系统保存四标记,清除该一个逻辑内核的系统保存的一标记二标记三标记五标记,并删除该一个逻辑内核的系统保存的一标记二标记三标记五标记以此进行该一个逻辑内核的系统不保存一标记二标记三标记五标记,该一个逻辑内核保存结束标记,进入步骤S430;
S423:然后该一个逻辑内核的系统保存三标记,并清除该一个逻辑内核的系统保存的一标记二标记四标记五标记,并删除该一个逻辑内核的系统保存的一标记二标记四标记五标记以此进行该一个逻辑内核的系统不保存一标记二标记四标记五标记,(从开头取然后设一),进入步骤S430;
S424:检测最终的行有没有该一个逻辑内核的指令,若有该一个逻辑内核的指令,进入步骤S425,若没有该一个逻辑内核的指令,进入步骤S426;
S425:在最终的行中找其指令本身的程序点序列号与该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号相同的该一个逻辑内核的指令,然后把在最终的行中找到的其指令本身的程序点序列号与该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号相同的该一个逻辑内核的指令进行不取标记,然后将其顺序执行顺序位于进行不取标记该一个逻辑内核的指令之前那些该一个逻辑内核的指令进行不取标记,进入步骤S426;
S426:检测最终的行内的没有不取标记的该一个逻辑内核的指令的顺序执行顺序的早与晚,然后开始进行按原本顺序执行的顺序的早与晚进行以先早后晚的取指方式一个一个取指令的办法取最终的行内的没有不取标记的该一个逻辑内核的指令,检测指令行的各个行与该一个逻辑内核的内存操作程序点缓存取指流水线及该一个逻辑内核设置的内存操作程序点缓存的取指端是否全部都没有该一个逻辑内核的指令,若是,进入步骤S427,若否,进入步骤S428;
S427:该一个逻辑内核的系统保存五标记,清除该一个逻辑内核的系统保存的一标记二标记三标记四标记,并删除该一个逻辑内核的系统保存的一标记二标记三标记四标记以此进行该一个逻辑内核的系统不保存一标记二标记三标记四标记,进入步骤S429;
S428:该一个逻辑内核的系统保存四标记,清除该一个逻辑内核的系统保存的一标记二标记三标记五标记,并删除该一个逻辑内核的系统保存的一标记二标记三标记五标记以此进行该一个逻辑内核的系统不保存一标记二标记三标记五标记,进入步骤S430;
S429:取消实施上流水线的该一个逻辑内核的指令经延迟系统的流水线进入下流水线,然后实施上流水线的该一个逻辑内核的指令不经延迟系统的流水线直接进入下流水线,该一个逻辑内核的系统保存五标记,然而不经延迟系统的流水线直接进入下流水线的该一个逻辑内核的指令的还没有被清除的该一个逻辑内核的指令按其顺序执行的顺序的早与晚进行以先早后晚方式一个一个排列办法构成上次的从指令行与该一个逻辑内核设置的内存操作程序点缓存取的该一个逻辑内核的指令的程序之后的顺序执行的程序用于执行,然后用于执行的该一个逻辑内核的指令构成的程序按乱序执行的处理办法进行执行,然后实施执行程序的任务,然后进入步骤S402;
S430:然后从指令行与该一个逻辑内核设置的内存操作程序点缓存中取该一个逻辑内核的指令按其取指的顺序的早与晚进行以先早后晚方式一个一个排列的办法排列成程序从而构成最近一次冲突的重装的顺序执行的程序用于执行,然后用于执行的该一个逻辑内核的指令构成的程序按乱序执行的处理办法进行执行,然后实施执行程序的任务,然后进入步骤S402;
S431:取消实施上流水线的该一个逻辑内核的指令经延迟系统的流水线进入下流水线,然后实施上流水线的该一个逻辑内核的指令不经延迟系统的流水线直接进入下流水线,该一个逻辑内核的系统保存五标记,并清除该一个逻辑内核的系统保存的一标记二标记三标记四标记,并删除该一个逻辑内核的系统保存的一标记二标记三标记四标记以此该一个逻辑内核的系统不保存一标记二标记三标记四标记,然后该一个逻辑内核保存结束标记,清除该一个逻辑内核保存的起点标记,暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,然后按世界上的社会现有的发明所默认发明过的方法进行清除非延迟系统的流水线的该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要清除的该一个逻辑内核的指令,然后进行该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后向非内存操作程序点缓存取该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要取的该一个逻辑内核的指令,而取下的该一个逻辑内核的指令构成取下的程序作为该非冲突的重装的条件下该非冲突的重装的程序用于执行,并用于执行的该一个逻辑内核的指令构成的程序按乱序执行的处理办法进行执行,清除该一个逻辑内核保存的起点标记,清除内存操作程序点缓存取指流水线的该一个逻辑内核的指令,在该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差的值上设置丁范围,然后检测该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差的值是否在丁范围,若是,则进入步骤S432,若否则,进入步骤S433;
S432:以前的该一个逻辑内核的缓存结束寄存器的程序点序列号不作为该一个逻辑内核的缓存结束寄存器的程序点序列号,然后删除该一个逻辑内核的缓存结束寄存器保存的程序点序列号,然后将该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,然后以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,清除指令行的各个行的该一个逻辑内核的指令,进入步骤S402;
S433:系统在指令行中找其指令的程序点序列号与该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号相同的该一个逻辑内核的指令,然后把系统在指令行中找到的其指令的程序点序列号与该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号相同的该一个逻辑内核的指令进行后结标记,然后将指令行的各个行中其顺序执行顺序位于有后结标记的该一个逻辑内核的指令之后的那些该一个逻辑内核的指令清除,然后将指令行的各个行中有后结标记的该一个逻辑内核的指令清除,检测最终的行有没有该一个逻辑内核的指令,若有该一个逻辑内核的指令,进入步骤S434,若没有该一个逻辑内核的指令,进入步骤S402;
S434:以前的该一个逻辑内核的缓存结束寄存器的程序点序列号不作为该一个逻辑内核的缓存结束寄存器的程序点序列号,然后删除该一个逻辑内核的缓存结束寄存器保存的程序点序列号,然后找指令清除后的最终的行的顺序执行顺序上的最后一个的该一个逻辑内核的指令,然后将找出的指令清除后的最终的行的顺序执行顺序上的最后一个的该一个逻辑内核的指令的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,然后以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,进入步骤S402;
S435:然后取消实施上流水线的该一个逻辑内核的指令经延迟系统的流水线进入下流水线,然后实施上流水线的该一个逻辑内核的指令不经延迟系统的流水线直接进入下流水线,该一个逻辑内核的系统保存五标记,并清除该一个逻辑内核的系统保存的一标记二标记三标记四标记,并删除该一个逻辑内核的系统保存的一标记二标记三标记四标记以此该一个逻辑内核的系统不保存一标记二标记三标记四标记,然后该一个逻辑内核保存结束标记,清除该一个逻辑内核保存的起点标记,暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,然后进行清除非延迟系统的流水线的该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装所要清除的该一个逻辑内核的指令,然后进行该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后向非内存操作程序点缓存取该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装所要取的该一个逻辑内核的指令,而取下的该一个逻辑内核的指令构成取下的程序作为该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的程序用于执行,并用于执行的该一个逻辑内核的指令构成的程序按乱序执行的处理办法进行执行,清除该一个逻辑内核保存的起点标记,清除内存操作程序点缓存取指流水线的该一个逻辑内核的指令,在该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差的值上设置丁范围,然后检测该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号与该一个逻辑内核的缓存结束寄存器的程序点序列号相差的值是否在丁范围,若是,则进入步骤S436,若否,则进入步骤S437;
S436:以前的该一个逻辑内核的缓存结束寄存器的程序点序列号不作为该一个逻辑内核的缓存结束寄存器的程序点序列号,然后删除该一个逻辑内核的缓存结束寄存器保存的程序点序列号,然后将该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,然后以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,清除指令行的各个行的该一个逻辑内核的指令,进入步骤S402;
S437:系统在指令行中找其指令的程序点序列号与该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号相同的该一个逻辑内核的指令,然后把系统在指令行中找到的其指令的程序点序列号与该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号相同的该一个逻辑内核的指令进行后结标记,然后将指令行的各个行中其顺序执行顺序位于有后结标记的该一个逻辑内核的指令之后的那些该一个逻辑内核的指令清除,然后将指令行的各个行中有后结标记的指令清除,检测最终的行有没有该一个逻辑内核的指令,若有该一个逻辑内核的指令,进入步骤S438,若没有该一个逻辑内核的指令,进入步骤S402;
S438:以前的该一个逻辑内核的缓存结束寄存器的程序点序列号不作为该一个逻辑内核的缓存结束寄存器的程序点序列号,然后删除该一个逻辑内核的缓存结束寄存器保存的程序点序列号,然后找指令清除后的最终的行的顺序执行顺序上的最后一个的该一个逻辑内核的指令,然后将找出的指令清除后的最终的行的顺序执行顺序上的最后一个的该一个逻辑内核的指令的程序点序列号保存到该一个逻辑内核的缓存结束寄存器中,然后以该一个逻辑内核的缓存结束寄存器保存的程序点序列号作为该一个逻辑内核的缓存结束寄存器的程序点序列号,进入步骤S402;
7.根据权利要求5或6所述的降低内存读取乱序的方法,其特征在于,所述步骤S312或步骤S438之后还包括:
S500:检测该一个逻辑内核的该非内存操作程序点缓存有没有取该一个逻辑内核的指令,若有该一个逻辑内核的指令,进入步骤S501,若没有该一个逻辑内核的指令,进入步骤S502;
S501:取该一个逻辑内核的该非内存操作程序点缓存所取的该一个逻辑内核的指令的最后一个的该一个逻辑内核的指令的程序点序列号保存在该一个逻辑内核的该非内存操作程序点缓存的开启寄存器中,进入步骤S502;
S502:检测该一个逻辑内核设置的内存操作程序点缓存是否现在收到程序点序列号,清除本发明所述的内存操作程序点缓存取指流水线的该一个逻辑内核的指令,若否,进入步骤S517,若是,进入步骤S503;
S503:暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,设置一个某该非内存操作程序点缓存设定的数,然后清除系统中保存的该一个逻辑内核的该非内存操作程序点缓存的缓存序列号,然后将该一个逻辑内核的该非内存操作程序点缓存的开启寄存器保存的程序点序列号减去某该非内存操作程序点缓存设定的数后只保留某范围数位构成该一个逻辑内核的该非内存操作程序点缓存的缓存序列号,然后将该一个逻辑内核的该非内存操作程序点缓存的开启寄存器保存的程序点序列号减去某该非内存操作程序点缓存设定的数后只保留某范围数位构成该一个逻辑内核的该非内存操作程序点缓存的缓存序列号当中构成的该一个逻辑内核的该非内存操作程序点缓存的缓存序列号保存在系统中,进入步骤S507;
S507:检测该一个逻辑内核是否出现加载冒险执行的非冲突的重装的条件,若是,则进入步骤S508,若否,则进入步骤S509;
S508:以前的该一个逻辑内核的缓存写入后端寄存器的程序点序列号不作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后以该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后清除上流水线的该一个逻辑内核的指令,然后清除非延迟系统的流水线的该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要清除的该一个逻辑内核的指令,然后进行该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后进行实施该一个逻辑内核的该线程从该非内存操作程序点缓存中取该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要取的该一个逻辑内核的指令,然后在下一时钟进入步骤S500,以此循环;
S509:检测该一个逻辑内核是否保存起点标记,若是,步骤S507,若否,步骤S510;
S510:检测该一个逻辑内核是否保存结束标记,若是,步骤S512,若否,步骤S511;
S511:在该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号与系统保存的该一个逻辑内核的该非内存操作程序点缓存的缓存序列号相差的值上设定戊范围,然后检测是否出现该一个逻辑内核设置的内存操作程序点缓存的读取地址所保存的程序点序列号与系统保存的该一个逻辑内核的该非内存操作程序点缓存的缓存序列号相差的值在设定的戊范围,若是,进入步骤S512,若否,则进入步骤S507;
S512:检测该一个逻辑内核的该线程是否允许取该一个逻辑内核的指令,若是,进入步骤S513,若否,进入步骤S512;
S513:进行实施该一个逻辑内核的该线程从该非内存操作程序点缓存中取该一个逻辑内核的该非内存操作程序点缓存的本发明所述的该一个逻辑内核的开启寄存器的程序点序列号之后的指令构成该一个逻辑内核的该非内存操作程序点缓存的本发明所述的该一个逻辑内核的开启寄存器的程序点序列号之后的该一个逻辑内核的指令的程序用于执行,则是非内存操作程序点缓存取指端从非内存操作程序点缓存取的该一个逻辑内核的指令,取的指令是该一个逻辑内核的该非内存操作程序点缓存的本发明所述的该一个逻辑内核的开启寄存器的程序点序列号之后的该一个逻辑内核的指令,然后在下一时钟进入步骤S500,以此循环;
S517:检测该一个逻辑内核的管理系统是否现在接收了相关冲突重装的内容,若是,进入步骤S518,若否,进入步骤S520;
S518:暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,清除上流水线的该一个逻辑内核的指令,进入步骤S519;
S519:然后以前的该一个逻辑内核的缓存写入后端寄存器的程序点序列号不作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后以该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后进行清除非延迟系统的流水线的该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装所要清除的该一个逻辑内核的指令,然后进行该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后进行实施该一个逻辑内核的该线程从该非内存操作程序点缓存中取该一个逻辑内核的管理系统现在接收了的相关冲突重装的内容的相关冲突重装的该冲突的重装所要取的该一个逻辑内核的指令,然后在下一时钟进入步骤S500,以此循环;
S520:检测该一个逻辑内核是否出现加载冒险执行的非冲突的重装的条件,若是,进入步骤S521,若否,在下一时钟进入步骤S522,以此循环;
S521:暂停该一个逻辑内核从该非内存操作程序点缓存的缓存中取该一个逻辑内核的指令,清除上流水线的该一个逻辑内核的指令,然后以前的该一个逻辑内核的缓存写入后端寄存器的程序点序列号不作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后进行清除非延迟系统的流水线的该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要清除的该一个逻辑内核的指令,然后进行该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装在本发明所述的非延迟系统的流水线中的整理,然后以该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装的重装点的未更正前的第一个指令的程序点序列号减一后只保留某范围数位的程序点序列号作为该一个逻辑内核的缓存写入后端寄存器的程序点序列号,然后进行实施该一个逻辑内核的该线程从该非内存操作程序点缓存中取该一个逻辑内核出现的该非冲突的重装的条件下的该非冲突的重装所要取的该一个逻辑内核的指令,然后在下一时钟进入步骤S500,以此循环;
S522:进行实施该一个逻辑内核的该线程从该非内存操作程序点缓存中取该一个逻辑内核的指令,然后在下一时钟进入步骤S500,以此循环;
8.根据权利要求1所述的降低内存读取乱序的方法,其特征在于,所述步骤S3还包括:在内存作程序点缓存取指令时阻断内存作程序点缓存从非内存操作程序点缓存取指令而存入内存作程序点缓存,直至内存作程序点缓存取用后才不阻断内存作程序点缓存从非内存操作程序点缓存取指令。
9.根据权利要求1所述的降低内存读取乱序的方法,其特征在于,所述步骤S3之后还包括:
S4:进行把从内存操作程序点缓存与指令行取下的那些指令及从内存操作程序点缓存与指令行取下的那些指令的各种编号及从内存操作程序点缓存与指令行取下的那些指令的相关标记及从内存操作程序点缓存与指令行取下的那些指令的程序点序列号发送到本发明所述的解码单元之后过程的除掉内存操作程序点缓存指令行单元的单元后进行以所述的解码单元之后过程的除掉内存操作程序点缓存指令行单元的单元为开始的解码单元的之后的过程;
10.根据权利要求1所述的降低内存读取乱序的方法,其特征在于,所述步骤S3之后还包括:
S5:进行把那些从内存操作程序点缓存与指令行取下的那些指令及从内存操作程序点缓存与指令行取下的那些指令的各种编号及从内存操作程序点缓存与指令行取下的那些指令的相关标记及从内存操作程序点缓存与指令行取下的那些指令的程序点序列号发送到本发明所述的重命名单元之后过程的除掉内存操作程序点缓存指令行单元的单元后进行以所述的重命名单元之后过程的除掉内存操作程序点缓存指令行单元的单元为开始的重命名的之后的过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910286350.1A CN110007966A (zh) | 2019-04-10 | 2019-04-10 | 一种降低内存读取乱序的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910286350.1A CN110007966A (zh) | 2019-04-10 | 2019-04-10 | 一种降低内存读取乱序的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110007966A true CN110007966A (zh) | 2019-07-12 |
Family
ID=67170875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910286350.1A Pending CN110007966A (zh) | 2019-04-10 | 2019-04-10 | 一种降低内存读取乱序的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110007966A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114518884A (zh) * | 2020-11-19 | 2022-05-20 | 华为技术有限公司 | 修复弱内存序问题的方法及装置 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5625787A (en) * | 1994-12-21 | 1997-04-29 | International Business Machines Corporation | Superscalar instruction pipeline using alignment logic responsive to boundary identification logic for aligning and appending variable length instructions to instructions stored in cache |
US5625789A (en) * | 1994-10-24 | 1997-04-29 | International Business Machines Corporation | Apparatus for source operand dependendency analyses register renaming and rapid pipeline recovery in a microprocessor that issues and executes multiple instructions out-of-order in a single cycle |
US6073230A (en) * | 1997-06-11 | 2000-06-06 | Advanced Micro Devices, Inc. | Instruction fetch unit configured to provide sequential way prediction for sequential instruction fetches |
US20030149865A1 (en) * | 2002-02-05 | 2003-08-07 | Sudarshan Kadambi | Processor that eliminates mis-steering instruction fetch resulting from incorrect resolution of mis-speculated branch instructions |
JP2004295195A (ja) * | 2003-03-25 | 2004-10-21 | Japan Science & Technology Agency | 命令発行方法及び装置、中央演算装置、命令発行プログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体 |
CN101021799A (zh) * | 2007-03-19 | 2007-08-22 | 中国人民解放军国防科学技术大学 | 基于逻辑发射序号的软、硬件结合指令相关性控制方法 |
CN101201734A (zh) * | 2006-12-13 | 2008-06-18 | 国际商业机器公司 | 预解码用于执行的指令的方法及装置 |
JP2009187120A (ja) * | 2008-02-04 | 2009-08-20 | Fujitsu Ltd | プロセッサ、レジスタアクセス方法およびレジスタアクセスプログラム |
CN102486758A (zh) * | 2010-12-01 | 2012-06-06 | 中兴通讯股份有限公司 | 一种访问协处理器寄存器的方法及装置 |
CN103123575A (zh) * | 2011-11-18 | 2013-05-29 | 北京兴宇中科科技开发股份有限公司 | 一种数据写入方法 |
CN103207776A (zh) * | 2013-03-11 | 2013-07-17 | 浙江大学 | 一种gene乱序发射处理器内核 |
CN103593169A (zh) * | 2013-11-29 | 2014-02-19 | 深圳中微电科技有限公司 | 一种多线程处理器中的指令输出装置、方法及其处理器 |
JP2015008008A (ja) * | 2014-09-01 | 2015-01-15 | インテル・コーポレーション | 無制限トランザクショナルメモリ(utm)システムの最適化 |
CN104424129A (zh) * | 2013-08-19 | 2015-03-18 | 上海芯豪微电子有限公司 | 基于指令读缓冲的缓存系统和方法 |
CN104978282A (zh) * | 2014-04-04 | 2015-10-14 | 上海芯豪微电子有限公司 | 一种缓存系统和方法 |
CN106201913A (zh) * | 2015-04-23 | 2016-12-07 | 上海芯豪微电子有限公司 | 一种基于指令推送的处理器系统和方法 |
CN107589960A (zh) * | 2017-08-30 | 2018-01-16 | 北京轩宇信息技术有限公司 | 一种基于寄存器访问冲突检测的dsp指令模拟方法 |
US20180321943A1 (en) * | 2016-01-20 | 2018-11-08 | Cambricon Technologies Corporation Limited | Data read-write scheduler and reservation station for vector operations |
-
2019
- 2019-04-10 CN CN201910286350.1A patent/CN110007966A/zh active Pending
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5625789A (en) * | 1994-10-24 | 1997-04-29 | International Business Machines Corporation | Apparatus for source operand dependendency analyses register renaming and rapid pipeline recovery in a microprocessor that issues and executes multiple instructions out-of-order in a single cycle |
US5625787A (en) * | 1994-12-21 | 1997-04-29 | International Business Machines Corporation | Superscalar instruction pipeline using alignment logic responsive to boundary identification logic for aligning and appending variable length instructions to instructions stored in cache |
US6073230A (en) * | 1997-06-11 | 2000-06-06 | Advanced Micro Devices, Inc. | Instruction fetch unit configured to provide sequential way prediction for sequential instruction fetches |
US20030149865A1 (en) * | 2002-02-05 | 2003-08-07 | Sudarshan Kadambi | Processor that eliminates mis-steering instruction fetch resulting from incorrect resolution of mis-speculated branch instructions |
JP2004295195A (ja) * | 2003-03-25 | 2004-10-21 | Japan Science & Technology Agency | 命令発行方法及び装置、中央演算装置、命令発行プログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体 |
CN101201734A (zh) * | 2006-12-13 | 2008-06-18 | 国际商业机器公司 | 预解码用于执行的指令的方法及装置 |
CN101021799A (zh) * | 2007-03-19 | 2007-08-22 | 中国人民解放军国防科学技术大学 | 基于逻辑发射序号的软、硬件结合指令相关性控制方法 |
JP2009187120A (ja) * | 2008-02-04 | 2009-08-20 | Fujitsu Ltd | プロセッサ、レジスタアクセス方法およびレジスタアクセスプログラム |
CN102486758A (zh) * | 2010-12-01 | 2012-06-06 | 中兴通讯股份有限公司 | 一种访问协处理器寄存器的方法及装置 |
CN103123575A (zh) * | 2011-11-18 | 2013-05-29 | 北京兴宇中科科技开发股份有限公司 | 一种数据写入方法 |
CN103207776A (zh) * | 2013-03-11 | 2013-07-17 | 浙江大学 | 一种gene乱序发射处理器内核 |
CN104424129A (zh) * | 2013-08-19 | 2015-03-18 | 上海芯豪微电子有限公司 | 基于指令读缓冲的缓存系统和方法 |
CN103593169A (zh) * | 2013-11-29 | 2014-02-19 | 深圳中微电科技有限公司 | 一种多线程处理器中的指令输出装置、方法及其处理器 |
CN104978282A (zh) * | 2014-04-04 | 2015-10-14 | 上海芯豪微电子有限公司 | 一种缓存系统和方法 |
JP2015008008A (ja) * | 2014-09-01 | 2015-01-15 | インテル・コーポレーション | 無制限トランザクショナルメモリ(utm)システムの最適化 |
CN106201913A (zh) * | 2015-04-23 | 2016-12-07 | 上海芯豪微电子有限公司 | 一种基于指令推送的处理器系统和方法 |
US20180321943A1 (en) * | 2016-01-20 | 2018-11-08 | Cambricon Technologies Corporation Limited | Data read-write scheduler and reservation station for vector operations |
CN107589960A (zh) * | 2017-08-30 | 2018-01-16 | 北京轩宇信息技术有限公司 | 一种基于寄存器访问冲突检测的dsp指令模拟方法 |
Non-Patent Citations (4)
Title |
---|
NAM SUNG KIM 等: "Reducing register ports using delayed write-back queues and operand pre-fetch", 《ICS "03: PROCEEDINGS OF THE 17TH ANNUAL INTERNATIONAL CONFERENCE ON SUPERCOMPUTING》 * |
SHERAZ ANJUM等: "一种高效的指令缓存单元架构及其性能分析(英文)", 《电子器件》 * |
刘炳涛等: "一种缓存数据流信息的处理器前端设计", 《计算机研究与发展》 * |
陈智勇: "基于FPGA 的流水线微处理器设计", 《微计算机信息》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114518884A (zh) * | 2020-11-19 | 2022-05-20 | 华为技术有限公司 | 修复弱内存序问题的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100243853B1 (ko) | 개량된메모리아키텍쳐를위한방법및장치 | |
JP4027620B2 (ja) | 分岐予測装置、プロセッサ、及び分岐予測方法 | |
CN105653790B (zh) | 一种基于人工神经网络的乱序处理器Cache访存性能评估方法 | |
US5511178A (en) | Cache control system equipped with a loop lock indicator for indicating the presence and/or absence of an instruction in a feedback loop section | |
CN102768644B (zh) | 闪存系统及其闪存无效数据页信息的管理方法与回收方法 | |
CN104380264B (zh) | 运行时间检测报告 | |
CN101446923B (zh) | 一种响应于指令而清洗高速缓冲存储器线的装置和方法 | |
CN105653201B (zh) | 读取平均化方法及使用读取平均化方法的存储器装置 | |
US8370579B2 (en) | Global instructions for spiral cache management | |
KR20210002554A (ko) | 강건한 트랜잭션 메모리 | |
CN103076992B (zh) | 一种内存数据缓冲方法及装置 | |
US7805594B2 (en) | Multithread processor and register control method | |
CN110007966A (zh) | 一种降低内存读取乱序的方法 | |
CN103513958B (zh) | 高性能指令缓存系统和方法 | |
CN103984526A (zh) | 一种指令处理系统及方法 | |
CN104461871A (zh) | 一种基于petri网的死锁检测方法 | |
KR100335744B1 (ko) | 로드/로드 검출 및 재정렬 방법 | |
WO2018210007A1 (zh) | 一种虚拟控制器的组态调试器实现方法 | |
CN108401467A (zh) | 存储设备、芯片及存储设备的控制方法 | |
CN107193498A (zh) | 一种对数据进行去重复处理的方法及装置 | |
EP2128771B1 (en) | Method and apparatus for controlling cache memory | |
CN103514107B (zh) | 高性能数据缓存系统和方法 | |
WO2017074416A1 (en) | Managing cache operations using epochs | |
CN108829345A (zh) | 日志文件的数据处理方法和终端设备 | |
US10120687B2 (en) | Programmable controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20240202 |
|
AD01 | Patent right deemed abandoned |