2 简单的计算机系统MARIE

news/2024/9/20 2:26:57/文章来源:https://www.cnblogs.com/wxrwajiez/p/18419327

2 简单的计算机模型MARIE

总线

分类1

  • 点对点总线
  • 多点总线

分类2

  • 数据线(并行 /串行)
  • 控制线(设备使用总线的权限 /传输总线请求的应答 /确认中断和时钟同步信号)
  • 地址线
  • 电源线

主线仲裁机制

对于多个主控设备的系统,为某些主控设备设置优先级别,又保证各个主控设备都有机会使用总线

  1. 菊花链仲裁方式:从最高优先级到最低(优先级低的设备可能被“饿死”,简单但不公平)
  2. 集中式并行仲裁方式:仲裁控制器(所有请求都集中在一个仲裁器上,导致瓶颈)
  3. 采用自选择的分配式仲裁方式:设备自己决定
  4. 采用冲突检测的分配式仲裁方式:如果多个请求者同时请求资源,系统会进行冲突检测,以确定哪个请求可以被满足(常见)

时钟

控制指令执行速度的内部时钟

指令的性能通常是通过时钟周期(时钟频率的倒数)的数目(而不是秒)来测量的

存储器

存储器通常使用符号 L x W(长 x 宽)表示

e.g. 4M x 8 = 222 x 8, (字节)地址:0 ~ 222-1

​ 单个存储器模块只能串行访问(每次只能执行一次存储器访问); 交叉存储器把存储器分成多个模块,多个模块可以同时访问。

​ 模块的数量取决于有多少个可寻址单元,n个模块 = n路交叉

高位交叉:使用地址的高位选择模块

2

低位交叉:使用地址的低位选项模块

IMG_20240918_174223

MARIE特点

E2467C4B50AD26942FF9F4E3E875811B

指令执行过程

577FB0DEE6B663F8B7447B5014CADA89

寄存器与指令集

Load X:将地址位X的存储单元中的内容装入AC

MAR <- X
MBR <- M[MAR]
AC <- MBR

Store X:将AC中的内容存储到地址X的存储单元中

MAR <- X, MBR <- AC
M[MAR] <- MBR

Add X:将地址X中的内容和AC中的内容相加,将结果存到AC中

MAR <- X
MAR <- M[MAR]
AC <- AC + MBR

Subt X:从AC中减去地址X中的内容,将结果存到AC中

MAR <- X
MAR <- M[MAR]
AC <- AC - MBR

Input

AC <- InREG

Output

OutREG <- AC

Halt:停止程序的执行

Skipcond:有条件地跳过下一条指令

If IR[11-10] = 00 thenIf AC < 0 then PC <- PC + 1
else If IR[11-10] = 01 thenIf AC = 0 then PC <- PC + 1
else If IR[11-10] = 10 thenIf AC > 0 then PC <- PC + 1

Jump X:无条件转向给定地址X

PC <- X

中断

  • 硬件中断
  • 软件中断(陷阱 /异常)

中断产生原因:

​ 程序错误、硬件错误、I/O完成、用户中断、定时器中断

IMG_20240918_191329

中断屏蔽:使用标志寄存器中的特殊中断屏蔽位暂停非关键中断(可屏蔽中断)

不可屏蔽中断不能暂停

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/799533.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

扩展分析C语言单双引号、反斜杠与注释

目录注释奇怪的注释C风格的注释无法嵌套一些特殊的注释注释的规则建议反斜杠\反斜杠有续行的作用,但要注意续行后不能添加空格回车也能起到换行的作用,那续行符的意义在哪?反斜杠的转义功能单引号和双引号字面值,字符串,字符,字符变量的大小为什么sizeof(1)的大小是4 ?char…

扩展分析单双引号、反斜杠与注释

目录注释奇怪的注释C风格的注释无法嵌套一些特殊的注释注释的规则建议反斜杠\反斜杠有续行的作用,但要注意续行后不能添加空格回车也能起到换行的作用,那续行符的意义在哪?反斜杠的转义功能单引号和双引号字面值,字符串,字符,字符变量的大小为什么sizeof(1)的大小是4 ?char…

C----函数递归之反汇编

环境 win10 vc6.0 debug 代码 关于求阶层问题:n!=n(n-1)!;(n-1)! = (n-1)(n-2)! 例如5!=5(4)! 4!=43! 3!=32! 2!=21 函数递归的出口是1,所以函数递归最重要的条件是去寻找递归的出口 int fun(int i) {int sum = 0;if (i == 1){return 1;}else{sum = i*fun(i-1);}return sum …

地平线占用预测 FlashOcc 参考算法-V1.0

1.简介 3D Occupancy Networks 的基本思路是将三维空间划分成体素网格,并对每个网格进行各类感知任务的预测。目前以网格为中心的方法能够预测每个网格单元的占用率、语义类别、未来运动位移和实例信息。3D occupancy 可以对道路障碍物进行更细粒度的划分,同时获取更精确的占…

手脱upx

其实已经是大一下刚开始的事情了,补个档 手动脱壳の新年快乐 查壳,有壳,UPXX32dbg打开文件,查看初始断点点击PUSHAD跟进,CTRL+*设置EIP,开始F8步过,寻找ESP寄存器第一次单个变红的地址此时的内存窗口开始步过第一次步过就发现ESP单个变红,右键跟进内存窗口然后在第一个…

使用firemin降低火狐内存占用

这些年一直使用火狐浏览器,之前一直在AMD平台的机器使用,没有遇到过内存占用过大的问题(可能也与平台无关)。现在在Intel CPU的机器上使用,时间一久,内存就占用很大。试过Firefox/内存消耗严重里面的办法,效果不明显。也试过修改about:config里面的一些选项,也没有达到…

代码随想录算法 - 回溯算法1

题目1 77. 组合 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1: 输入:n = 4, k = 2 输出: [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4], ]示例 2: 输入:n = 1, k = 1 输出:[[1]]提示:1 <= n <= 20 1 <= k…

错误

PID自己搭的时候,要注意积分模块的位置,搞不明白好久了,原来是我把积分模块的位置放错了。直接用增益模块不容易出错。

OSG开发笔记(三十):OSG加载动力学仿真K模型文件以及测试Demo

前言Osg需要打开模型文件,但是遇到显示动力学仿真的K模型文件,.k文件是一种描述材料属性的文件,比如密度、弹性模量等,该模型文件不是常规中间开放格式,无法直接支持,需要自定义解析并且重建三维模型。 Demo实际非常流程,因为视频转gif导致部分看起来不行:   交互流畅…

0918高数一千题,多元函数积分学

T17.第一型曲线积分空间形式 用斯托克斯公式化成第二型曲面积分 解第二型曲面积分,用高斯公式或者投影转换法,后者注意正负号,上正下负,前正后负 T18.换路径,但是x=1左半段不能化成lnx算 T19.求偏导就对对应字母求就行,不用对y导x T20.多元极值AC-B2>0A>0,极小 A<…

Dynamic Locomotion in the MIT Cheetah 3 Through Convex Model-Predictive Control

1. Swing Leg Control\(J_i \in R^{3*3}\) 是足端雅可比;\(\tau _{i,ff}\) 是前馈力矩 \(\Lambda \in R^{3*3}\)是操作空间惯性矩阵;\(a_{i,ref} \in R^{3*3}\)是机体坐标系下的参考加速度 q是关节角度;\(C_i \dot{q}_i + G_i\)是科里奥利力和重力 2. Ground Force Control …