Memory 如何将8086的内存空间扩展到1GB?

Memory 如何将8086的内存空间扩展到1GB?,memory,x86,x86-16,Memory,X86,X86 16,如何将8086的内存空间扩展到1GB?您可以升级到更现代化的处理器。例如,任何不是70年代的处理器 如果这是不可能的,那么这可能更多的是硬件问题而不是软件问题…您必须在硬件中实现某种类型的功能。显然,您不会得到线性地址空间。1GB的空间需要30条地址线,而8086上只有20条物理地址线。您可以实现银行交换,其中8086提供20条较低的地址线。另外10条线路通过一个映射到16位I/O端口的闩锁提供。将值写入该端口会在锁存器中存储10位的银行编号。锁存器随后用于将上面的10条地址线馈送到内存 20年

如何将8086的内存空间扩展到1GB?

您可以升级到更现代化的处理器。例如,任何不是70年代的处理器


如果这是不可能的,那么这可能更多的是硬件问题而不是软件问题…

您必须在硬件中实现某种类型的功能。

显然,您不会得到线性地址空间。1GB的空间需要30条地址线,而8086上只有20条物理地址线。您可以实现银行交换,其中8086提供20条较低的地址线。另外10条线路通过一个映射到16位I/O端口的闩锁提供。将值写入该端口会在锁存器中存储10位的银行编号。锁存器随后用于将上面的10条地址线馈送到内存


20年前,当我在大学做这个硬件项目时,我们当时能获得的最大内存是2MB——我不知道如何连接现代1GB内存模块

什么?8086的内存空间?当然,您的意思不是让16位8086处理器能够访问1GB的ram?这是一个实际问题还是一个理论问题?你有实际的8086吗?这是我明天考试的理论问题。之前的测试是将8085的内存扩展到4GB。但是8086的问题在于银行(偶数和奇数地址)@user你真的应该在问题中包含这类信息,这是硬件问题。我必须解释如何将内存物理扩展到1GB。我想我需要一个可以寻址1MB的银行和一个10>1024的多路复用器,这样我就可以得到1GB。我说的话听起来不错,但我不知道是不是possible@Anonymouse:很好,很好,我删除了“体系结构”这个词:)虽然我真的不介意在我们使用x86时去掉它。顺便说一句,我的一个同事一直把“匿名”发音为“匿名”,你知道他有什么变化吗?@anonymouse 8086!=x86、8086有16位内存空间,x86有32位,x64(AMD64)有64位。2^16=64K,2^32=4GB,2^64=16M的PBs!使用更多内存的唯一方法是使用更长的地址字(你不能),或者使用具有更多位的硬件扩展,并使用两个或更多的字来访问它!我想我是从slashdot的某个人那里偷来的名字。Danny Varod:这不仅是一个笑话,x86的问题还远远超出了老一代的内存空间限制。我可以制作一个1 MB的内存库,并为将进入多路复用器的额外10条线制作2个锁存器(我们这样称呼它),这样我们就可以得到1024个输出,每个输出选择一个存储库吗?我认为这是获得1GB的方法,但这是我的理论,所以你能帮助我吗?我的理论正确吗?我不明白为什么需要2个锁存器(除非你是指2个8位锁存器来覆盖所需的10位)。1024个输出-我认为你不需要,除非你真的有1024个独立的1MB内存模块。如果您只有一个模块,那么将1MB的银行选择编码为10位,这样就简单多了。因为这是为了考试,我不想再说了,因为您还需要做一些思考!)所有的图片都在这里,你只需要仔细想想!祝你好运是2个8位锁存器,覆盖10位。1024个输出选择1024个存储组(每个1 MB),这样我最多可以寻址1 GB。这是我上周考试时遇到的一个问题,我想明天我也会遇到同样的问题。这是一个理论问题,我们可以画或写一些好的。但不是1024个输出-10个输出,1024个组合。