Characteristics of Some CISCs, RISCs, and Superscalar Processors

One of the most visible forms of evolution associated with computers is that of pro-
gramming languages. As the cost of hardware has dropped, the relative cost of soft-
ware has risen. Along with that, a chronic shortage of programmers has driven up
software costs in absolute terms. Thus, the major cost in the life cycle of a system is
software, not hardware. Adding to the cost, and to the inconvenience, is the element
of unreliability: it is common for programs, both system and application, to continue
to exhibit new bugs after years of operation.
The  response  from  researchers  and  industry  has  been  to  develop  ever  more
powerful  and  complex  high-level  programming  languages.  These  high-level  lan-
guages  (HLLs):  (1)  allow  the  programmer  to  express  algorithms  more  concisely,
(2) allow the compiler to take care of details that are not important in the program-
mer’s expression of algorithms, and (3) often support naturally the use of structured
programming and/or object-oriented design.
Alas,  this  solution  gave  rise  to  a  perceived  problem,  known  as  the  semantic
gap,  the  difference  between  the  operations  provided  in  HLLs  and  those  provided
in  computer  architecture.  Symptoms  of  this  gap  are  alleged  to  include  execution
inefficiency,  excessive  machine  program  size,  and  compiler  complexity.  Designers
responded with architectures intended to close this gap. Key features include large
instruction  sets,  dozens  of  addressing  modes,  and  various  HLL  statements  imple-
mented in hardware. An example of the latter is the CASE machine instruction on
the VAX. Such complex instruction sets are intended to

•  Ease the task of the compiler writer.
  •  Improve  execution  efficiency,  because  complex  sequences  of  operations  can
be implemented in microcode.
  •  Provide support for even more complex and sophisticated HLLs.
Meanwhile, a number of studies have been done over the years to determine
the  characteristics  and  patterns  of  execution  of  machine  instructions  generated
from HLL programs. The results of these studies inspired some researchers to look
for  a  different  approach:  namely,  to  make  the  architecture  that  supports  the  HLL
simpler, rather than more complex.

To  understand  the  line  of  reasoning  of  the  RISC  advocates,  we  begin  with  a
brief review of instruction execution characteristics. The aspects of computation of
interest are as follows:
  •  Operations performed: These determine the functions to be performed by the
processor and its interaction with memory.
  •  Operands  used:  The  types  of  operands  and  the  frequency  of  their  use  deter-
mine the memory organization for storing them and the addressing modes for
accessing them.
  •  Execution sequencing: This determines the control and pipeline organization.
In  the  remainder  of  this  section,  we  summarize  the  results  of  a  number  of
studies  of  high-level-language  programs.  All  of  the  results  are  based  on  dynamic
measurements. That is, measurements are collected by executing the program and
counting  the  number  of  times  some  feature  has  appeared  or  a  particular  property
has held true. In contrast, static measurements merely perform these counts on the
source text of a program. They give no useful information on performance, because
they are not weighted relative to the number of times each statement is executed.

INSTRUCTION EXECUTION CHARACTERISTICS的更多相关文章

  1. Next Instruction Access Intent Instruction

    Executing a Next Instruction Access Intent instruction by a computer. The processor obtains an acces ...

  2. Adaptively handling remote atomic execution based upon contention prediction

    In one embodiment, a method includes receiving an instruction for decoding in a processor core and d ...

  3. Method and apparatus for transitioning between instruction sets in a processor

    A data processor (104) is described. The data processor (104) is capable of decoding and executing a ...

  4. smaller programs should improve performance

    COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION In this section, we l ...

  5. Notes of Principles of Parallel Programming - TODO

    0.1 TopicNotes of Lin C., Snyder L.. Principles of Parallel Programming. Beijing: China Machine Pres ...

  6. Low-overhead enhancement of reliability of journaled file system using solid state storage and de-duplication

    A mechanism is provided in a data processing system for reliable asynchronous solid-state device bas ...

  7. Optimizing subroutine calls based on architecture level of called subroutine

    A technique is provided for generating stubs. A processing circuit receives a call to a called funct ...

  8. Speculative store buffer

    A speculative store buffer is speculatively updated in response to speculative store memory operatio ...

  9. A multiprocessing system including an apparatus for optimizing spin-lock operations

    A multiprocessing system having a plurality of processing nodes interconnected by an interconnect ne ...

随机推荐

  1. Backbone.js学习之二

    经历一段自我修炼,终于领悟到Backbone.js的关键知识点,也发现了原来MVC可以在前端这样梦幻的发挥,Backbone.js确实是一个很有魅力的前端MVC框架. 练就一门技术,需要有扎实的功底, ...

  2. BZOJ4657 : tower

    显然只有横向和纵向的两个炮塔才有可能冲突. 考虑最小割,将每个炮塔所有能攻击到的位置建点,相邻之间连无穷的边,表示前缀和关系,即选了一个点,就必须要选所有比它近的点. 属于横向炮塔的点向$S$连边,容 ...

  3. BZOJ4113 : [Wf2015]Qanat

    设$f_i$表示用$i$个辅助井时代价的最小值,$x_i$表示此时最后一个辅助井的位置. 则$f_i$是关于$x_i$的一个二次函数,其中系数跟$f_{i-1}$有关,递推求出极值点即可. 时间复杂度 ...

  4. 串 & 容斥原理

    题意: 给出n (n<=50000) 个长度为4的字符串,问有且仅有d(1<=d<=4)处不相同的字符串有几对. SOL: 一直对着4发呆,这么小的字符串背后有什么玄学呢= =... ...

  5. 51Nod 1136 欧拉函数 Label:数论

    对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目.此函数以其首名研究者欧拉命名,它又称为Euler's totient function.φ函数.欧拉商数等.例如:φ(8) = 4(Phi( ...

  6. 关于url

    URL即统一资源定位器用于定位万维网上的文档或其他数据,URL 可以由单词组成,比如 “www.baidu.com”,或者是因特网协议(IP)地址:192.168.x.xxx.大多数人在网上冲浪时,会 ...

  7. linux 运行可执行文件version `GLIBC_2.17' not found

    http://www.cnblogs.com/q191201771/p/3875316.html root@socfpga:/media/ram/nfs/dvb# ./a.out ./a.: vers ...

  8. 在不知道json格式的情况下如何使用cjson进行解析

    假设我们有一个json字符串,但是我们不知道这个json的组织方式,那么如何进行解析呢,下面就给一个小例子. 1.我们的json串如下: { "aStr": "aaaaa ...

  9. python成长之路——第一天

    一.python版本间的差异: 1.1:2.x与3.x版本对比 version 2.x 3.x print print " "或者print()打印都可以正常输出 只能print( ...

  10. 初识WebSocket

    众所周知,Http协议是无状态的,并且是基于Request/Response的方式与服务器进行交互,也就是我们常说的单工模式.但是随着互联 网的发展,浏览器与服务端进行双向通信需求的增加,长轮询向服务 ...