- 博客(8)
- 资源 (7)
- 收藏
- 关注
原创 内核入门——4 龙芯架构——4.2 ~ 4.
本文,包括《龙芯架构参考手册》,在介绍中断、例外时,还会用到一个概念,就是“指令的PC值”。唯一能确定的是进入例外、中断后,“指令的PC值”所指向的指令,并没有执行,例外、中断返回后,需要重新取指。由于流水线结构的存在,这个“当前指令”是“当前取指的指令”,还是“当前译码的指令”,或者是“当前执行的指令”。如果是例外,就比较麻烦了,因为例外可以发生在取指阶段,也可以发生在译码阶段,还可以发生在执行阶段,所以发生例外“指令的PC值”,不一定是当前的PC值,由于跳转指令的存在,不能肯定就是PC值减去一个常数。
2023-08-18 18:09:47 247 1
原创 内核入门——4 龙芯架构——4.1 龙芯架构的地址分布
可以看出来,通用寄存器,是其余各部件之间数据转移的中介。除了通用寄存器、浮点寄存器、外部存储三者之间可以互相直接转移数据,其余部件之间要转移数据,必须通过通用寄存器。如图 4‑1,方框表示独立编址的部件,箭头表示数据流。4‑1 龙芯架构的地址分布和数据流。
2023-08-15 21:19:23 103
原创 内核入门——3.4一切至少有一个地址
从汇编语言的角度,所有的部件(或存储),不管内部还是外部,都会有至少一个地址。通常设计时,还会对这些部件(或存储)分成几类,每一类都独立编址。计算机从逻辑上是分层,通常底层给上层提供接口,上层只负责调用底层提供的接口,无需知晓实现细节。独立编址是说,每一类的部件(或存储)的地址都分别从0开始递增,并分别用不同的指令访问。
2023-08-15 21:16:32 48
原创 内核入门——外设不一定在芯片外面
大体而言,CPU从存储器或高速缓存Cache中取出指令,放入指令寄存器,对指令进行译码,执行,再将指令结果(不是每条指令都会有写回)写回存储器或Cache中,运行大致可以分为四个阶段:取指(Fetch Instruction),译码(Decode Instruction),执行(Execute),写回(WriteBack)。在芯片设计过程中,通常会将内核与外设集成在同一个芯片中,此时,虽然内核、外设在同一个芯片上,但是再内核看来,外设依然在外面,所以依然是外设。通常情况下,“内”与“外”都是内核视角的。
2023-08-15 21:15:26 127
原创 内核入门——3.2汇编
(计算机体系结构的发展,指令端出现了微代码,汇编出现了宏代码,大体上仍然是一一映射的,只是不再是单指令的一一对应而已)。据我所知(在哪看的忘了),最早的汇编,跟机器码是严格一一映射的关系。基本就是:把机器码中的操作码,起一个人类好记的名字,通常是一个英语中的动词——助记符。由助记符和寻址方式,确定了一条汇编指令。除了极少量指令指令,绝大多数汇编指令,都有确定的寻址方式,只不过有的寻址方式,是显式的(比如加法指令),有的寻址方式是隐式的(比如中断返回指令),有的寻址方式是显式 + 隐式(比如相对跳转指令)。
2023-08-15 21:14:34 29
原创 内核入门——3.1机器码
比如有孔的地方表示1,没孔的地方表示0,计算机运行的程序,就是这一系列的0和1组成的二进制数串。但是我要说,工业标准摆在那里,也许不是最好的,你非要在工业标准之外圈地自萌,让大家重新习惯你的标准,当然也不是不可能成功,除非你的东西不可替代,否则成功概率很小。因为存在立即寻址方式(指令中包含操作数本身),所以这里的是地址,而不是地址码,再强调一次,操作数的地址,可以是地址码,也可以隐含在操作码里。字节,是计算机单次操作数据的最小单位,计算机单次操作的数据,必然是字节的整数倍。的机器码,是4个字节。
2023-08-15 21:13:03 51
原创 内核入门——名词解释
Virtually Address Length虚拟地址的位宽。Physical Address Length物理地址的位宽。本文中提到的自然数包含0,是0和正整数的并集。2.1 自然数。
2023-08-15 21:09:54 56
VS2010 MSCOMM.zip
2021-01-05
Keil.STM32F4xx_DFP.2.14.0.part1.rar
2019-10-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人