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. 蚂蚁【A001】

    [1005]出自附中练习场,其他编号(1005)[难度A]——————————————————————————————————————————————————————————————————————— ...

  2. 键盘按钮keyCode大全,keyCode列表对照表

    目录 [显示] 1js获取键盘按键对应的keyCode 2字母和数字键的键码值 3数字键盘上的键的键码值和功能键键码值 4控制键键码值 js获取键盘按键对应的keyCode <!doctype ...

  3. jquery.easing.js的使用

    jquery.easing.js是个好东西,各种动画效果扩展,加强和丰富了jquery自带的各种动画函数 box点击就会像移动出弹簧效果,$(obj).animate(目前状态,时间,效果,回调函数) ...

  4. Postman - HTTP接口测试工具

    Postman 是一个 Chrome 的 插件,它主要是用来模拟各种HTTP请求的(如:get/post/delete/put..等等),下面介绍下Postman的安装和使用方法: 一.安装Postm ...

  5. ora-14400插入的分区关键字未映射到任何分区---oracle数据库表过期问题

    楼主解决这个问题ora-14400插入的分区关键字未映射到任何分区,其原因是:分区表过期. 通过使用sql直接修改Date类型的字段可以证实,修改成过期以后的时间出现下列提示,修改成过期之前的则可以. ...

  6. Mvc网站发布到IIS

    网站发布步骤: 这部分是转载文章 在此标明出处,以前有文章是转的没标明的请谅解,因为有些已经无法找到出处,或者与其它原因. 如有冒犯请联系本人,或删除,或标明出处. 因为好的文章,以前只想收藏,但连接 ...

  7. webpack入门教程

    注:本文内容比较基础,供初学者快速入门参考. 更多详细信息请参考官方文档. 本文同步发布于我的博客,欢迎关注^_^ 1. 安装 npm install -g webpack 2. 基本使用 假设项目文 ...

  8. No configuration found for the specified action解决办法

    http://blog.csdn.net/carefree31441/article/details/4857546 使用Struts2,配置一切正常,使用常用tag也正常,但是在使用<s:fo ...

  9. 基于webpack的前端工程化开发解决方案探索(一):动态生成HTML(转)

    1.什么是工程化开发 软件工程的工程化开发概念由来已久,但对于前端开发来说,我们没有像VS或者eclipse这样量身打造的IDE,因为在大多数人眼中,前端代码无需编译,因此只要一个浏览器来运行调试就行 ...

  10. ACM 对决

    对决 时间限制:1000 ms  |  内存限制:65535 KB 难度:0   描述 Topcoder要招进来了 n 个新同学,Yougth计划把这个n个同学分成两组,要求每组中每个人必须跟另一组中 ...