问题标签 [computer-architecture]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 高速缓存如何工作?
今天在上计算机组织课的时候,老师讲了一件我很感兴趣的事情。当谈到为什么缓存内存起作用时,他说:
用第二行改变第一行是不好的。您对此有何看法?为什么会这样?
c++ - C ++中的变量存储在哪里?
C ++中的变量存储在哪里?
在 RAM 或处理器的缓存内?
caching - L1/2 缓存问题
L1/L2 高速缓存行能否分别高速缓存主存数据字的多个副本?
java - 位是如何存储在内存中的?(在块中?可以将多个大小的位存储在一起吗?)
我曾经认为每个内存位置包含 8、16、32 或 64 位。所以 0101 将作为 00000101 存储在 8 位机器中(如果它是负数,则符号扩展)。这一切都很好而且很花哨,直到我出于好奇用 java 编写了一个程序来了解这个系统的更多内部工作原理。
有问题的方法如下所示:
我从一个说 Hello World 的文件中得到了这个输出
除了空间,一切看起来都很好。它有 6 位而不是 8 位。我现在想知道所有这些信息是如何存储在内存中的。如果所有这些都存储在 8 位块中,例如
您好:10010001100101110110011011001101111
然后您可以简单地查看每个 8 位块并找出它所代表的数字(以及它所指的 ASCII 代码)。当不同大小的字符(如 6 位空间和 4 位 /n )与它们一起存储时,它是如何工作的?那么在大的位空间中存储一个小数不会浪费很多位吗?
我想我的一些基本理解是错误的(或者程序可能在某个地方出错了......)。对不起,如果这个问题听起来很奇怪或太不必要的深入。我只是想知道。我已经做了一些谷歌搜索,但它没有提出任何相关的信息。如果你能让我知道我哪里出了问题或指出我正确的方向,我将不胜感激。谢谢!
algorithm - 理解单词对齐
我理解访问内存以使其对齐意味着什么,但我不明白为什么这是必要的。例如,为什么我可以从一个地址访问一个字节,0x…1
但我不能从同一个地址访问一个半字(两个字节)。
同样,我明白,如果您有一个地址A
和一个大小对象s
,则访问是对齐的 if A mod s = 0
。但我只是不明白为什么这在硬件层面很重要。
computer-architecture - 这是我的计算机体系结构书中的错误吗?
我正在研究用于计算机体系结构的硬件,但遇到了以下问题:
A = 247
B = 2371) 假设 A 和 B 是以二进制补码格式存储的有符号 8 位整数。使用饱和算法计算 A + B。结果应该用十进制写。展示你的作品。
2) 假设 A 和 B 是以二进制补码格式存储的有符号 8 位整数。使用饱和算法计算 A - B。
现在,这些甚至是一个有效的问题吗?我知道什么是饱和算术,但是当它们不能用 8 位二进制补码表示时,说 A 是 247 和 B 是 237 有什么意义呢?
我意识到饱和算术的要点是在上溢/下溢的情况下将所有位设置为极值,但问一系列问题对我来说没有意义(同样的问题还有 3 个)涉及不能以它们指定的格式表示的数字的算术。
我在这里错了吗?
computer-architecture - 有哪些非冯诺依曼架构的例子?
如果我理解正确,现代计算机是以冯诺依曼架构为模型的。我有时会看到对替代方案的引用,但还没有真正看到任何关于非冯诺依曼架构如何组织和运作的非常好的描述。
有没有人有任何例子?替代计算机组织的优点/缺点是什么?
memory-management - “32 位操作系统”、“32 位处理器”:这些术语究竟是什么意思?
“32位操作系统”、“32位处理器”的确切含义是什么?
- 它会影响地址总线的大小吗?
- 它会影响可以生成的虚拟地址的数量吗?
- 它将如何影响寄存器大小意味着寄存器大小?
- 它对虚拟内存/内存管理有什么影响
我是这方面的初学者;如果你有的话,请给我一些合适的文档。
谢谢。
assembly - 关于计算机中数字表示的几个问题?
我从这本书开始学习汇编语言:Introduction to 80x86 Assembly Language and Computer Architecture
这是从Representing Data in a Computer
我们已经研究了两种表示数字的方案-
- 通过使用二进制整数(通常以十六进制表示)或
- 通过使用 ASCII 码。
但是,这些方法有两个问题:
我不明白这些问题。
1:可用于表示数字的位数是有限的,并且
我没有得到这个。他在说什么?
2:不清楚如何表示负数。
美好的
要解决上面提到的第一个表示问题,您可以简单地包含减号的代码。例如,四个字符 -817 的 ASCII 码是 2D(表示减号)、38、31 和 37。
我认为它的second representation problem
. 不过好吧,我明白了。
为了解决第一个问题,您总是可以同意使用固定数量的字节,也许在左边用 ASCII 代码填充零或空格。
我不知道他想说什么。ASCII codes for zeros or spaces.
??
或者,您可以使用可变数量的字节,但同意该数字以数字的最后一个 ASCII 码结尾,即以非数字结尾的字符串。
我一句话也没说。
我不知道为什么。但我无法理解他想说什么。任何人都可以解释这一点。(例子会很棒)
windows - 内存和磁盘有哪些不同的区域?
我不确定这是否是一个正确的提问地点,也不确定如何提出我的查询。
让我这样说吧:
- 主内存从 0x00000 到 0xFFFFF。
- 从 0x00000000 到 0xFFFFFFFF 的磁盘空间。
但是我们能够访问的不是从第 0 个字节到最后一个字节,对吧?在硬盘上,我猜在第 0 个字节我们有 MBR。& 在某个地方我们有文件系统(我们只能访问这个)。还有什么?
与主存储器类似。我们有一些内核内存和用户内存(每个进程都在其中)。还有什么?
我的问题是从第 0 个字节到最后一个字节的所有区域是什么?我不知道要搜索什么或在哪里可以找到此类信息?如果有人可以发布一些链接,那就太好了。
编辑:
我在 Windows 上使用 x86 32 位。实际上,我正在阅读一本有关计算机安全的书,其中作者提到恶意软件可以存在于磁盘或内存中。(这是非常正确的)。但是当我们说计算机被感染时,并不意味着只有文件(文件系统的一部分)被感染。还有其他区域不适合用户使用,例如 MBR。或内核内存。
于是,我的脑海里浮现了这个问题。我可能不知道的所有这些领域是什么?