牙龈翻瓣术是什么意思| 后脑勺发麻是什么原因| 广州属于什么气候| 双鱼配什么星座| 处长什么级别| 超声科是什么科室| 区域经理的岗位职责是什么| 楷字五行属什么| e是什么单位| 脑梗能吃什么水果| 男怕穿靴女怕戴帽什么意思| 月经量突然减少是什么原因| 小心的什么| 坐飞机需要什么证件| 朱门是什么意思| 庚申五行属什么| 母亲节送什么颜色的康乃馨| 一个口一个巴念什么字| 小产后可以吃什么水果| 人死后为什么要守夜| 梦到孩子丢了是什么征兆| 血透是什么意思| 什么鸡| 拧巴是什么意思| 神经内科看什么病| 明眸皓齿是什么意思| 同房有什么姿势| 梦到自己掉头发是什么预兆| 惠五行属什么| 尿素高不能吃什么| 嘴唇紫色是什么原因| 久之的之是什么意思| 口腔溃疡需要补充什么维生素| 吃什么对胃好| 今天立冬吃什么| 精神出轨什么意思| 人造海蜇丝是什么做的| 前庭功能是什么意思| 温州人为什么会做生意| 腹部b超挂什么科| 居里夫人发明了什么| 盆腔ct能检查出什么病| 三头六臂开过什么生肖| 圆寂是什么意思| 大便变黑是什么原因| 过期食品属于什么垃圾| 睡觉起来眼皮肿是什么原因| 眼睛充血用什么眼药水最好| 龟头炎有什么症状| 内涵什么意思| 弯弯的月亮像什么| 柳丁是什么水果| 非洲割礼是什么| 岳云鹏为什么这么火| 蔻驰包属于什么档次| 地瓜什么时候成熟| 河南专升本考什么| 恶露是什么意思| 上火是什么意思| 喝茶为什么睡不着觉| 岁月静好浅笑安然什么意思| 90年属马的是什么命| 男性尿道感染吃什么药| 调岗是什么意思| 怀孕吃什么水果好| pdt是什么意思| 升是什么意思| 农历4月14日是什么星座| 香草是什么植物| 支气管炎咳嗽吃什么药| 什么是横纹肌溶解症| 梦见捡到钱是什么征兆| trendiano什么牌子| 皮肤发黄什么原因| 大自然的馈赠什么意思| 激素是什么| 交媾是什么意思| 917是什么星座| 荡是什么意思| 王允和貂蝉什么关系| 光敏树脂是什么材料| 一级军士长什么待遇| progress什么意思| 痄腮是什么意思| 藕色是什么颜色| 口干嗓子干是什么原因| 什么是戒断反应| 火车票无座是什么意思| ad滴剂什么牌子好| 产后42天复查都检查什么| 突然嗜睡是什么原因造成的| 佝偻病什么症状| 看正月初一是什么生肖| 乌岽单丛是什么茶| 斯德哥尔摩综合征是什么| 落井下石什么意思| dr什么意思| 心电图窦性心动过缓是什么意思| 肌肉代偿是什么意思| 脑供血不足吃点什么药| 62岁属什么生肖| 木耳不能和什么一起吃| 为什么会有肥胖纹| 脚趾麻是什么病的前兆| vc什么时候吃最好| 樱桃有什么营养价值| 女人下身干燥无水是什么原因| ip是什么意思| 吃什么肝脏排毒| 儿童疝气挂什么科| 吉代表什么生肖| 女朋友生日送什么礼物好| 大腿肌肉跳动是什么原因| 拉肚子拉稀是什么原因| hcg值低是什么原因| 肌酸激酶偏低是什么原因| 大便白色是什么原因| 猪冲蛇开什么生肖| 睡觉手麻木是什么原因| 复方板蓝根和板蓝根有什么区别| 什么是淋巴肿瘤| 中伤是什么意思| 自然生化流产是什么意思| 垚字五行属什么| se是什么| 木丑念什么| 天天吹空调有什么危害| 破伤风什么情况需要打| 喜欢蹲着是什么原因| 龟毛的性格指什么性格| 星光是什么意思| 风调雨顺的下联是什么| 795是什么意思| 什么叫自慰| 甲状腺炎吃什么药| 槟榔什么味道| 龄字五行属什么| mcv是什么意思| 肾气不足有什么症状| 昌字五行属什么| 蛇最怕什么药| 豆包什么意思| hisense是什么牌子| 脑子疼是什么原因| 过敏挂什么科室| 下午六点多是什么时辰| 出虚汗是什么原因| 心脏疼挂什么科| 马齿苋长什么样| 三七是什么意思| swag什么意思| 洗冷水澡有什么好处| 跳蚤最怕什么| 亚是什么意思| 什么茶属于绿茶| parker是什么牌子| 朱元璋是什么生肖| 主动脉硬化吃什么药好| 骨头炖什么好吃| 羊水少了对宝宝有什么影响| 知柏地黄丸主治什么| 九月五日是什么节日| 默契的意思是什么| 丑人多作怪什么意思| itp是什么意思| 猴子下山的故事告诉我们什么| 油条配什么好吃| 误人子弟什么意思| 梦见孩子被蛇咬是什么意思| 蕙字五行属什么| 小孩几天不大便是什么原因怎么办| 眼底出血用什么药最好| 糖耐什么时候做| 出马仙是什么意思| 毒瘾为什么那么难戒| gn是什么意思| 口吐白沫是什么病| 上火耳鸣吃什么药最好| 安陵容为什么恨甄嬛| 什么是接触性皮炎| 茶毫是什么| 槊是什么意思| 清华什么专业最好| 骨折后吃什么食物促进骨头愈合| 胃窦粘膜慢性炎是什么病| gd什么意思| 脚干裂用什么药膏| 真露酒属于什么酒| 舞蹈症是什么病| 小腿肚抽筋是什么原因| 口下面一个巴念什么| 小儿惊痫是什么症状| 回执单是什么意思| 1981年五行属什么| 嘴苦口臭是什么原因造成的| 州和洲有什么区别| take是什么意思| 舅舅的老婆叫什么| 机制是什么| 来月经头疼吃什么药| 胎盘是什么| 结核抗体阳性说明什么| 女性脱发严重是什么原因引起的| 沙和尚是什么动物变的| 什么飞船| 男人艾灸什么地方壮阳| 脾是干什么用的| 羔羊跪乳是什么意思| 什么是脑白质病| 什么叫包皮过长| 混剪是什么意思| 立秋抓秋膘吃什么| 人为什么会抽筋| 呵呵是什么意思啊| 尿里带血是什么原因男性| 胸口闷闷的有点疼是什么原因| 手刃是什么意思| 楚怀王和芈月什么关系| 花中皇后是什么花| 一个胸大一个胸小是什么原因| 头疗是什么| 壬字五行属什么| 下水道井盖为什么是圆的| 反社会人格有什么表现| 头上出汗是什么原因| 嘴巴旁边长痘痘是为什么| 两个脚脖子肿什么原因| 什么是碳水食物| ppm是什么| 睾丸瘙痒是什么原因| 氟利昂是什么味道| 为什么叫川普| 梦见香蕉是什么意思| 生性多疑是什么意思| 念旧的人属于什么性格| 新生儿什么时候吃ad| 藏毛窦是什么病| 山东人为什么那么高| 海柳什么颜色最贵的| 什么病不能吃山药| 阴茎不硬吃什么药| 生理期可以吃什么水果| 大脚骨疼是什么原因| 梦见好多猫是什么预兆| 女人细菌感染什么原因引起的| 腹部ct能检查出什么| mdzz是什么意思| 医保编码是什么| 妤读什么| 什么牌子洗发水好| 性激素六项什么时候查| 黄金糕是什么做的| 脑梗三项是检查什么| 杨梅有什么功效与作用| 秦时明月什么时候更新| 我好想你是什么歌| 右侧肋骨下方是什么器官| 2024年是属什么生肖| 什么药止汗效果最好| 挂妇科门诊都检查什么| 妇科和妇产科有什么区别| 什么窃什么盗| 泌乳是什么意思| 羊球是什么| 百度Jump to content

中国商飞把"十个紧盯"作为监督硬措施

From Wikipedia, the free encyclopedia
百度 学生们到法院实习3个月,最多办30个案件;在这里,平均每个学生可以办50多个案件,而且还能对民事、刑事、行政案件都有所了解,到了工作岗位后,能很快适应。

Fetching the instruction opcodes from program memory well in advance is known as prefetching and it is served by using a prefetch input queue (PIQ). The pre-fetched instructions are stored in a queue. The fetching of opcodes well in advance, prior to their need for execution, increases the overall efficiency of the processor boosting its speed. The processor no longer has to wait for the memory access operations for the subsequent instruction opcode to complete. This architecture was prominently used in the Intel 8086 microprocessor.

Introduction

[edit]

Pipelining was brought to the forefront of computing architecture design during the 1960s due to the need for faster and more efficient computing. Pipelining is the broader concept and most modern processors load their instructions some clock cycles before they execute them. This is achieved by pre-loading machine code from memory into a prefetch input queue.

This behavior[clarification needed] only applies to von Neumann computers (that is, not Harvard architecture computers) that can run self-modifying code and have some sort of instruction pipelining. Nearly all modern high-performance computers fulfill these three requirements.[1]

Usually, the prefetching behavior of the PIQ is invisible to the programming model of the CPU. However, there are some circumstances where the behavior of PIQ is visible, and needs to be taken into account by the programmer.

When an x86 processor changes mode from real mode to protected mode and vice versa, the PIQ has to be flushed, or else the CPU will continue to translate the machine code as if it were written in its last mode. If the PIQ is not flushed, the processor might translate its codes wrong and generate an invalid instruction exception.

When executing self-modifying code, a change in the processor code immediately in front of the current location of execution might not change how the processor interprets the code, as it is already loaded into its PIQ. It simply executes its old copy already loaded in the PIQ instead of the new and altered version of the code in its RAM and/or cache.

This behavior of the PIQ can be used to determine if code is being executed inside an emulator or directly on the hardware of a real CPU.[citation needed] Most emulators will probably never simulate this behavior. If the PIQ-size is zero (changes in the code always affect the state of the processor immediately), it can be deduced that either the code is being executed in an emulator or the processor invalidates the PIQ upon writes to addresses loaded in the PIQ.

Performance evaluation based on queuing theory

[edit]

It was A.K Erlang (1878-1929) who first conceived of a queue as a solution to congestion in telephone traffic. Different queueing models are proposed in order to approximately simulate the real time queuing systems so that those can be analysed mathematically for different performance specifications.

Queuing models can be represented using Kendall's notation:

A1/A2/A3/A4

where:

  • A1 is the distribution of time between two arrivals
  • A2 is the service time distribution
  • A3 is the total number of servers
  • A4 is the capacity of system
  1. M/M/1 Model (Single Queue Single Server/ Markovian): In this model, elements of queue are served on a first-come, first-served basis. Given the mean arrival and service rates, then actual rates vary around these average values randomly and hence have to be determined using a cumulative probability distribution function.[2]
  2. M/M/r Model: This model is a generalization of the basic M/M/1 model where multiple servers operate in parallel. This kind of model can also model scenarios with impatient users who leave the queue immediately if they are not receiving service. This can also be modeled using a Bernoulli process having only two states, success and failure. The best example of this model is our regular land-line telephone systems.[3]
  3. M/G/1 Model (Takacs' finite input Model) : This model is used to analyze advanced cases. Here the service time distribution is no longer a Markov process. This model considers the case of more than one failed machine being repaired by single repairman. Service time for any user is going to increase in this case.[4]

Generally in applications like prefetch input queue, M/M/1 Model is popularly used because of limited use of queue features. In this model in accordance with microprocessors, the user takes the role of the execution unit and server is the bus interface unit.

Instruction queue

[edit]

The processor executes a program by fetching the instructions from memory and executing them. Usually the processor execution speed is much faster than the memory access speed. Instruction queue is used to prefetch the next instructions in a separate buffer while the processor is executing the current instruction.

With a four stage pipeline, the rate at which instructions are executed can be up to four times that of sequential execution.[5]

The processor usually has two separate units for fetching the instructions and for executing the instructions.[6][7]

The implementation of a pipeline architecture is possible only if the bus interface unit and the execution unit are independent. While the execution unit is decoding or executing an instruction which does not require the use of the data and address buses, the bus interface unit fetches instruction opcodes from the memory.

This process is much faster than sending out an address, reading the opcode and then decoding and executing it. Fetching the next instruction while the current instruction is being decoded or executed is called pipelining.[8]

The 8086 processor has a six-byte prefetch instruction pipeline, while the 8088 has a four-byte prefetch. As the Execution Unit is executing the current instruction, the bus interface unit reads up to six (or four) bytes of opcodes in advance from the memory. The queue lengths were chosen based on simulation studies.[9]

An exception is encountered when the execution unit encounters a branch instruction i.e. either a jump or a call instruction. In this case, the entire queue must be dumped and the contents pointed to by the instruction pointer must be fetched from memory.

Drawbacks

[edit]

Processors implementing the instruction queue prefetch algorithm are rather technically advanced. The CPU design level complexity of the such processors is much higher than for regular processors. This is primarily because of the need to implement two separate units, the BIU and EU, operating separately.

As the complexity of these chips increases, the cost also increases. These processors are relatively costlier than their counterparts without the prefetch input queue.

However, these disadvantages are greatly offset by the improvement in processor execution time. After the introduction of prefetch instruction queue in the 8086 processor, all successive processors have incorporated this feature.

x86 example code

[edit]
code_starts_here:
  mov bx, ahead
  mov word ptr cs:[bx], 9090h
ahead:
  jmp near to_the_end
  ; Some other code
to_the_end:

This self-modifying program will overwrite the jmp to_the_end with two NOPs (which is encoded as 0x9090). The jump jmp near to_the_end is assembled into two bytes of machine code, so the two NOPs will just overwrite this jump and nothing else. (That is, the jump is replaced with a do-nothing-code.)

Because the machine code of the jump is already read into the PIQ, and probably also already executed by the processor (superscalar processors execute several instructions at once, but they "pretend" that they don't because of the need for backward compatibility), the change of the code will not have any change of the execution flow.

Example program to detect size

[edit]

This is an example NASM-syntax self-modifying x86-assembly language algorithm that determines the size of the PIQ:

code_starts_here:
  xor bx, bx                  ; zero register bx
  xor ax, ax                  ; zero register ax

  mov dx, cs
  mov [code_segment], dx      ; "calculate" codeseg in the far jump below (edx here too)

around:
  cmp ax, 1                   ; check if ax has been altered
  je found_size
                              ; 0x90 = opcode "nop" (NO oPeration)
  mov byte [nop_field+bx], 0x90
  inc bx

  db 0xEA                     ; 0xEA = opcode "far jump"
  dw flush_queue              ; should be followed by offset (rm = "dw", pm = "dd")
code_segment:
  dw 0                        ; and then the code segment (calculated above)
flush_queue:
                              ; 0x40 = opcode "inc ax" (INCrease ax)
  mov byte [nop_field+bx], 0x40
nop_field:
  times 256 nop 
  jmp around
found_size:
  ;
  ;    register bx now contains the size of the PIQ
  ;    this code is for [[real mode]] and [[16-bit protected mode]], but it could easily be changed into
  ;    running for [[32-bit protected mode]] as well. just change the "dw" for
  ;    the offset to "dd". you need also change dx to edx at the top as
  ;    well. (dw and dx = 16 bit addressing, dd and edx = 32 bit addressing)
  ;

What this code does is basically that it changes the execution flow, and determines by brute force how large the PIQ is. "How far away do I have to change the code in front of me for it to affect me?" If it is too near (it is already in the PIQ) the update will not have any effect. If it is far enough, the change of the code will affect the program and the program has then found the size of the processor's PIQ. If this code is being executed under multitasking OS, the context switch may lead to the wrong value.

See also

[edit]

References

[edit]
  1. ^ "ARM Information Center". ARM Technical Support Knowledge Articles.
  2. ^ Hayes, John (1998). Computer Architecture and Organization (Second ed.). McGraw-Hill.
  3. ^ Feller, William (1968). An Introduction to Probability theory and its applications (Second ed.). John Wiley and Sons.
  4. ^ Papoulis, Athanasios; S.Unnikrishna Pillai (2008). Probability, Random Variables and Stochastic Processes (Fourth ed.). McGraw-Hill. pp. 784 to 800.
  5. ^ Zaky, Safwat; V. Carl Hamacher; Zvonko G. Vranesic (1996). Computer Organization (Fourth ed.). McGraw-Hill. pp. 310–329. ISBN 0-07-114309-2.
  6. ^ "Block diagram of 8086 CPU".
  7. ^ Hall, Douglas (2006). Microprocessors and Interfacing. Tata McGraw-Hill. p. 2.12. ISBN 0-07-060167-4.
  8. ^ Hall, Douglas (2006). Microprocessors and Interfacing. New Delhi: Tata McGraw-Hill. pp. 2.13 – 2.14. ISBN 0-07-060167-4.
  9. ^ McKevitt, James; Bayliss, John (March 1979). "New options from big chips". IEEE Spectrum. 16 (3): 28–34. doi:10.1109/MSPEC.1979.6367944. S2CID 25154920.
[edit]


做b超为什么要憋尿 急性扁桃体化脓是什么原因引起的 6月22号是什么星座 la帽子是什么牌子 松花粉有什么功效
大寒是什么意思 大姨妈来能吃什么水果 乾隆是什么生肖 梦见闹离婚是什么意思 肝血不足吃什么中成药
身上遇热就痒是什么病 致密是什么意思 最高法院院长什么级别 收放自如是什么意思 唐氏综合征是什么
抽动症是什么引起的 痛风可以吃什么 美国什么时候建国的 什么叫感统训练 腱鞘炎有什么治疗方法
11月1号是什么星座hcv9jop1ns5r.cn 望尘莫及是什么意思hcv8jop9ns5r.cn 泡脚去湿气用什么泡最好hcv9jop3ns7r.cn 喉咙痛喝什么bjhyzcsm.com 乙肝表面抗原大于250是什么意思hcv7jop9ns5r.cn
胎儿宫内缺氧孕妇有什么症状hcv9jop6ns3r.cn 高血压属于什么系统疾病hcv9jop4ns6r.cn 给你脸了是什么意思hcv8jop7ns4r.cn 扫地僧是什么意思hcv9jop1ns7r.cn 心肌缺血用什么药huizhijixie.com
为什么来月经会头疼hcv7jop9ns3r.cn 三伏天吃什么hcv8jop7ns6r.cn 梦见自己杀人了是什么意思hcv9jop5ns3r.cn 什么是智齿牙hcv9jop0ns0r.cn 衣带渐宽终不悔是什么意思sanhestory.com
直率是什么意思hcv8jop5ns6r.cn 后背痛是什么病的先兆hcv7jop7ns4r.cn 血糖30多有什么危险hcv9jop8ns3r.cn 冒犯是什么意思hcv8jop5ns8r.cn 比基尼是什么hcv8jop1ns5r.cn
百度