第四章 处理器体系结构

第四章 处理器体系结构

第一节 Y86指令集体系结构

Y86指令

IA32的movl指令分为四种:irmovl,rrmovl,mrmovl,rmmovl

与Ia332不同的是前面多了限制位,im,前面字母表示的意思为钱一个操作数传到后一个操作数的缩写

※这里的存储器引用方式是简单的基址和偏移量形式,寻址方式不支持第二变址寄存器和任何寄存器值的伸缩

※两个操作数不能都是来自存储器,也不允许将立即数传送到存储器

四个整数操作指令

addl 加
subl 减
andl 与
xorl 异或

这些指令会设置三个条件码

ZF-零
SF-符号
OF-溢出

七个跳转指令——分支控制

jmp 直接跳转
jle(SF^OF)|ZF 有符号数≤
jl SF^OF 有符号<
je ZF 相等/零
jne ~ZF 不相等/非零
jge ~(SF^OF) 有符号≥
jg ~(SF^OF)&~ZF 有符号>

六个条件传送指令

cmovle
cmovl
cmove
cmovne
cmovge
cmovg

这些指令的格式与寄存器-寄存器传送指令rrmovl一样,但是只有当条件码满足所需要的约束时,才会更新目的寄存器的值。

call和ret

call指令将返回地址入栈,然后跳到目的地址,ret指令从这样的过程调用中返回。

pushl和popl

实现入栈和出栈

halt指令

halt指令停止指令的执行,执行此指令会导致处理器停止,并将状态码设置为HLT。

类比IA32:hlt指令与之类似,但是IA32的应用程序不允许使用这条指令,因为它会导致整个系统暂停运行。

注意事项:

1,与Ia不同的是一些指令的写法

2,逻辑功能与其他运算需要的功能有区别,并没有像IA那样有庞大的运算指令,其他功能需要的操作由基本操作复合而成

指令的字节级编码

每条指令需要1-6个字节不等,每条指令的第一个字节表明指令的类型

这个字节分为两个部分

  • 高四位:代码部分,值域为0~0xB
  • 第四位:功能部分,功能值只有在一组相关指令共用一个代码时才有用。

注意事项:

1 当需要指明不应访问任何寄存器时,用ID值0xF表示

2 编写序列是以小编法来编译的

3 通常情况下,前序列为操作指令,后面的为相应操作地址,并且为绝对地址

Y86异常

1.状态码Stat的可能取值

Stat描述程序执行的总体状态

1. AOK 正常操作
2. HLT 处理器执行halt指令
3. ADR 遇到非法地址
4. INS 遇到非法指令

出现异常时,Y86——处理器停止运行指令。

注意事项:

1 这些指令需要判断状态码

2 可以方便中断操作,比如Call 21H

小结:

Y86语言更接近于机器,许多操作可以用基本操作代替时,都会复写成简单操作的组合

Y86没有相应的识别能力,只会对相应的序列做对应的操作,主要体现在同一条语句pop pushl就会出现歧义

第二节 逻辑设计和硬件控制语言HCL

逻辑门   AND && ,OR || ,NOT !

HCL:逻辑表达式就是逻辑关系

小结:

就是对应于逻辑关系式,写出对应关系

机器做法与之类似

Y86的顺序实现

SEQ处理器

一、将处理组织成阶段

(一)六个基本阶段:

  • 取指
  • 译码
  • 执行
  • 访存
  • 写回
  • 更新PC

小结:

主要集中于不同的指令需要对应不同的阶段,主要还是各阶段的组合

SEQ有点类似于路由器的编制,在需要对信息进行处理的时候就会添加到相应的地址进行操作再把结果反馈回来

更新有利于系统的长久使用

参考资料

课本

阎佳欣博客

百度

时间: 2024-08-06 20:42:45

第四章 处理器体系结构的相关文章

第四章处理器体系结构 学习报告

第四章  处理器体系结构 4.1 Y86指令集体系结构 定义一个指令集体系结构,例如Y86,包括定义各种状态元素.指令集和他们的编码.一组变成规范和异常事件处理. 4.1.1 程序员可见的状态 ①程序员可见的状态:Y86中每条指令都会读取或修改处理器状态的某些部分.这里的“程序员”既可以是用汇编代码写程序的人,也可以是产生机器代码的编译器. Y86的处理器状态类似IA32.有8个程序寄存器:%eax,%ecx,%edx,%ebx,%esi,%esp和%ebp.处理器的每个程序寄存器存储一个字.

《深入理解计算机系统》第四章 处理器体系结构

<深入理解计算机系统>第四章 处理器体系结构 我们看到的计算机系统都只限于机器语言程序级.处理器执行一系列指令每天指令执行某个简单操作,它们被编码为由一个或多个字节序列组成的二进制格式.在本章的学习中,我们主要了解ISA抽象的作用以及了解流水线和实现方式. 4.1 Y86-64指令集体系结构 字节序列转换为Y86-64指令的方法总结如下: 通过代码部分确定指令长度,从而以指令为单位划分字节序列: 通过功能部分确定具体的指令: 通过寄存器指示符字节确定指令中涉及的寄存器: 通过转换数值部分以小段

2017-2018-1 20155312 学习《深入理解计算机系统》第四章:处理器体系结构

处理器体系结构 目录 教材学习内容总结 Y86-64指令集体系结构 逻辑设计和硬件控制语言 Y86-64的顺序实现 流水线的通用原理 Y86-64的流水线实现 教材课后习题总结 教材课后实践示例 处理器体系结构 我们看到的计算机系统都只限于机器语言程序级.处理器执行一系列指令每天指令执行某个简单操作,它们被编码为由一个或多个字节序列组成的二进制格式.一个处理器支持的指令和指令的字节集编码成为它的指令集体系结构(ISA). 在本章的学习中,我们的学习目标如下: 了解ISA抽象的作用 掌握ISA,并

C和指针 (pointers on C)——第十四章:预处理器

第十四章 预处理器 我跳过了先进的指针主题的章节. 太多的技巧,太学科不适合今天的我.但我真的读,读懂.假设谁读了私下能够交流一下.有的小技巧还是非常有意思. 预处理器这一章的内容.大家肯定都用过.什么#include,#define #ifdef #undef这些,可是绝对用的不多.作为全面了解学C,还是应该都看一看. 预处理器使用方法非常讲究,用不好会失误,用好了会大大加快执行时速度(不是编译速度). 总结: C程序的第一个步骤就是预处理.预处理器共包括下面几个符号: 1.#define 定

《Linux内核设计与实现》第四章学习笔记

第四章 进程调度 [学习时间:1小时45分 撰写博客时间:2小时10分钟] [学习内容:Linux的进程调度实现.抢占和上下文切换.与调度相关的系统调用] 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间.进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统. 最大限度利用处理器时间的原则:只要有可以执行的进程,那么总会有程序正在执行. 一.多任务 1.概念:多任务操作系统就是能同时并发地交互执行多个进程的操作系统,在单处理器机器上这会产生多个进程在同时运行的幻觉

《Linux内核设计与实现》第八周学习总结——第四章 进程调度

<Linux内核设计与实现>第八周学习总结——第四章 进程调度 第4章 进程调度35 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有通过调度程序的合理调度,系统资源才能最大限度地发挥作用,多进程才会有并发行的效果. 调度程序没有太复杂的原理,最大限度地利用处理器时间的原则是只要有可以执行的进程,那么就总会有进程正在执行,但是只要系统中可运行的进程的数目比处理器的个数多,就注定某一给定时刻会有一些进程不

《Linux内核设计与实现》第四章读书笔记

第四章 进程调度 第4章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有通过调度程序的合理调度,系统资源才能最大限度地发挥作用,多进程才会有并发行的效果. 调度程序没有太复杂的原理,最大限度地利用处理器时间的原则是只要有可以执行的进程,那么就总会有进程正在执行,但是只要系统中可运行的进程的数目比处理器的个数多,就注定某一给定时刻会有一些进程不能执行,这些进程在等待运行,在一组处于可运行状态的进

2017.06.29数据挖掘基础概念第四章

第四章39.为什么在进行联机分析处理(OLAP)时,我们需要一个独立的数据仓库,而不是直接在日常操作的数据库上进行 1.提高两个系统的性能 2.操作数据库支持多事务的并发处理,需要并发控制和恢复机制,确保一致性和事务的鲁棒性 3.两者有着不同的数据的结构.内容和用法40.什么是数据仓库 数据仓库是一种数据库,它与单位的操作数据库分别维护,数据仓库系统允许将各种应用系统集成在一起,为统一的历史数据分析提供坚实的平台,对信息处理提供支持,是一个面向主题的.集成的.时变得.非易失的数据集合,支持管理者

C Primer Plus (第四章总结)

1.定义字符串可以直接在头文件下定义,如: #include <stdio.h> #define hello  "hello world!" 2.sizeof() 和 strlen() sizeof运算符是以字节为单位给出数据的大小,strlen()是以字符为单位给出长度. <string.h>包含许多与字符串相关的函数的原型,包括strlen() sizeof运算符提供的数据比肉眼直观的要大多一位,因为他把用来标志字符串的不可见的空字符也计算在内. 定义常量最