我们可以将一台只有寄存器的计算机作为内存吗?

Kam*_*ran 9 memory computer-architecture

寄存器是计算机中最快的记忆.因此,如果我们想要建立一个只有寄存器而不是缓存的计算机,是否可能?我想甚至用寄存器替换磁盘,尽管它们是自然易失性的存储器.我们是否有一些非易失性寄存器用于此用途?它会变得如此之快!我只是想知道这是否可能发生?

Dav*_*one 11

非常简短的答案是肯定的,理论上你可以,但它在现实生活中并没有真正起作用.让我解释...

存储器层次结构存在的原因是因为那些小而快的存储器存储每一位(寄存器)非常昂贵,而大而慢的存储器存储每一位(硬盘驱动器)非常便宜.

大量寄存器非常不实用的另一个原因是因为指令需要引用存储器位置.当您只有少量寄存器时,可以将寄存器(或寄存器)编号和操作码存储在少数位中,这意味着少量寄存器可以实现短指令和快速指令.如果你将要有一个数千兆字节的寄存器集合,你需要能够在指令中引用它们,这些指令将会更长(因此更慢).请记住,如果一切都是寄存器,有些事情会快得多,但是通过使用较少数量的寄存器,某些事情(即,你用电脑做的大部分事情)要快得多.

拥有大量寄存器也会增加处理读取和写入寄存器的硬件的大量复杂性,这会使一切变慢.

当然,虽然我们大多数人都在考虑计算机,但肯定有简单的设备只有寄存器,但它们也只有非常有限的内存量,而不是用于通用计算.

您可能也对我对汇编的回答感兴趣:为什么我们要困扰寄存器?


rai*_*ndi -1

寄存器内存如此之少的原因是它非常昂贵。这就是我们拥有内存层次结构的原因。