链接地址是程序执行发生的地址,而加载地址是程序实际放置在内存中的地址。
现在我很困惑程序计数器的值是什么?是加载地址还是链接地址?
linker operating-system loader computer-architecture program-counter
我刚刚开始汇编语言编程,在第一堂课中,我们的老师告诉我们有关intel 8080和intel 8085的内容,他说这些处理器有64k内存.
现在我想知道我们如何使用特定处理器找到这么多的内存,例如我有一个1.8 Ghz的处理器,现在我怎么能找到可以用于这个处理器的内存量.
我想问的是告诉我如何找出这个内存量的方法?
矢量中断和非矢量中断有什么区别?
我认为所有的中断都必须是向量中断...毕竟不是所有的中断都有一个向量编号,因此带有特定ISR的向量[中断服务程序]
(ISR地址将在页表中,4*在产生中断的设备中的向量#;假设32位地址架构)....
谢谢!
我在$ ra返回地址的概念上非常困惑.它是返回正在执行的当前指令的地址还是下一步要执行的指令?有关说明,请使用以下代码,
- 考虑一个调用三个函数func_A,func_B和func_C的代码片段.指令1位于地址1996.当调用三个函数中的每一个时,将在寄存器$ ra中加载什么?
Instruction 1
Instruction 2
jal func_A
Instruction 3
jal func_B
Instruction 4
jal func_C
Instruction 5
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我遇到了以下问题,我不确定如何处理它:
考虑具有以下属性的虚拟内存系统:
·35位虚拟地址
·16 KB页面
·32位物理地址
假设该虚拟存储器系统用八路组关联TLB实现.TLB总共有256个TLB条目,每个TLB条目代表一个虚拟到物理页码转换.
64 KB数据高速缓存是双向组关联高速缓存.数据高速缓存的块大小为128字节.
显示虚拟到物理映射,其中的图形以类似于下图的方式绘制(但需要对此问题中指定的TLB和数据缓存进行所有必要的更改).
指定进出的所有字段和信号的宽度(以及完成的比较次数)TLB和每个存储器地址的数据高速缓存.
我对如何计算一些参数有一个想法,但除此之外,我迷失了.
例如,由于虚拟地址是35位宽,我知道我有2 ^ 35个可能的虚拟地址.
由于我有16KB页面(16*1KB = 2 ^ 4*2 ^ 10 = 2 ^ 14KB),我知道我必须有(3 ^ 35)/(2 ^ 14)= 2 ^ 21页表项.
最后,我知道我的缓存大小是64*1KB = 2 ^ 16字节的缓存.
但是在这些步骤之后我迷失了.任何帮助,将不胜感激.

我们被教导RAM内存的抽象是一个很长的字节数组.而对于CPU来说,访问它的任何部分需要相同的时间.什么是能够同时访问4千兆字节(在我的计算机上)的任何字节的设备?因为这对我来说似乎不是一项微不足道的任务.
我曾经问同事和我的教授,但是没有人能够指出如何通过简单的逻辑门实现这项任务,如果它不仅仅是一个棘手的逻辑门组合,那又是什么呢?
我个人的猜测是你可以以O(log(n))速度访问任何内存,其中n将是内存的大小.因为每个门都将内存分成两部分,然后向你发送内存访问指令,将内存分成两个门.但这需要很多门.我无法提出任何其他有根据的猜测,我甚至不知道我应该在Google中查找的设备名称.
请帮助我痛苦的好奇心,并提前感谢.
编辑<这是我学到的!
从你的引用"RAM可以将单元格地址X的值发送到某些输出引脚",这里是每个人都跳过(再次)对我来说不重要的事情.我看到它的方式,为了构建一个由64个引脚决定从2 ^ 64中取出哪个字节的门,每个引脚需要将整个可能的存储器范围分成两个.如果索引0处的位是0 - >则地址在存储器0-2 ^ 64/2处,否则地址在存储器2 ^ 64/2-2 ^ 64处.等等,然而,内存提取将通过的门(让我们称之为)将是64,(一个常数).然而,所需的门数量是N,其中N是存在的存储器字节数.
仅仅因为有64个引脚,这并不意味着您仍然可以将其解码为2 ^ 64范围内的单次提取.内存控制中有4 GB的内存和4 GB的内存吗?
现在这可以改进,因为当我越来越多地阅读这个内存是如何构建时,如果你将内存放入一个带有sqrt(N)行和sqrt(N)列的矩阵中,那么获取内存的门数量就会增加将需要经历的是O(log(sqrt(N)*2)并且所需的门数将是2*sqrt(N),这要好得多,我认为这可能是商业秘密.
/编辑<
PCIe 3.0 x16和QPI 1.1(20通道)具有相同的有效带宽(16 GB/s).所以,我想大致了解两者之间的差异.
两者在延迟和消息速率(每秒数据包数量或TLP数量)方面有何不同?对于延迟,我的球场数量为QPI为20 ns,PCIe 3.0为200 ns.这些好估计?如果是,为什么PCIe的延迟要高得多 - 是否由于线路长度?
除了QPI提供缓存侦听这一事实之外,两者之间是否存在重大的架构差异?据我所知,两者都使用分层协议:通过物理层传输层.
我理解数字和字母之类的东西是用二进制编码的,因此可以存储为0和1.
但是如何将函数存储在内存中?我不知道如何将它们存储为0和1,并且我不知道除了0和1以外什么东西可以存储在内存中.
在计算机体系结构讲座中,我学到了写缓冲区的功能; 保持数据等待写入内存.我的教授刚才说它可以提高时间表现.
但是,我真的好奇'它如何改善时间表现'?你能更准确地解释写缓冲区的工作原理吗?