80486有多个不同型号,各型号的封装也不太一样,具体可以参考多图的这里: http://www.mynikko.com/CPU/80486.html
制程: 1 µm, 800 nm, 600 nm
引自:https://zh.wikipedia.org/wiki/Intel_80486 Intel 80486SX - 沒有FPU支援的i486。由於早期的i486的FPU具有缺陷而將FPU功能關起來,但後期為了降低成本和減少晶片面積而將FPU完整拿掉。 Intel 80486DX - 具有FPU的i486。 Intel 80486DX2 - 以2倍倍頻來運行的處理器。 Intel 80486SX2 - 與i486DX2相同,但是沒有FPU功能。 Intel 80486SL - 低耗電的i486DX,主要用於可攜式電腦。 Intel 80486SL-NM - 低耗電的i486SX。 Intel 80487 - 給予i486SX使用的運算處理器,實際上80487就是一顆完全的i486DX處理器。當插上487時,487會屏蔽i486SX並接管所有處理器工作。 Intel 80486 OverDrive - 內部運算速度比較快的處理器。 Intel 80486DX4 - 以3倍倍頻來運行的處理器(不是4倍)。 i486的時脈有16、20、25、33、40、50、66、75、100MHz.
80486相对于386只增加了几条指令。它们是:
XADD:加法操作的一个原子指令,即fetch and add
BSWAP: 转换字节序指令,即将一个32位数据的字节序反转,原来的0,1,2,3字节变成3,2,1,0。参考:https://c9x.me/x86/html/file_module_x86_id_21.html
CMPXCHG: compare and swap原子指令,http://x86.renejeschke.de/html/file_module_x86_id_41.html
INVD: 使内部缓存失效,80486在cpu内部集成了Level 1 cache。该指令用于清空cache内容。
WBINVD: write back and invalidate data。使内部缓存失效,在失效前将修改过的数据写回到内存。
INVLPG: 使TLB数据失效。这个指令与直接加载CR3的区别在于CR3是整个TLB都失效,并重新加载。INVLPG则是指定去失效某个页的TLB。它是一个更细粒度的控制。关于它与CR3的区别参考这个讨论:https://stackoverflow.com/questions/28384234/when-to-do-or-not-do-invlpg-mov-to-cr3-to-minimize-tlb-flushing
80486使用的时钟频率依旧很慢,最低20MHz,最高100MHz。但80486实现了倍频,即用一种特殊的电路使得大多数内部部件以输人时钟的2倍或3倍(那时候最高支持到3倍)的速度来运行。
现代的台式机CPU通常时钟频率是200MHz,但CPU的主频一般3GHz上下,也是使用了倍频技术。
80386就打算集成L1 cache,结果因为某些原因没能做到。80486终于做到了这一点。内置了8KB的L1 cache,并且不区分数据和指令,都往这一个cache上缓存。
浮点计算协处理器一做为x87型号的器件单独出售的,到80486终于集成在了一起。但是有一个问题是有些批次的产品浮点运算协议处理器有故障,于是intel关闭了这些批次cpu的浮点运算协处理器,做为不支持内置x87的版本来售卖。有些用户的确不需要协处理器就会去买,如果使用的过程中发现又需要协处理器了,就再买一个x87装在外面。
80486的性能比带有80387的80386提高了4倍。早期的486分为有协处理器的486DX和无协处理器的486SX两种,其价格也相差许多。
引自百度百科
多重管线是一个RISC CPU架构上先使用的技术,因而当80486使用了多重管线的时候,有人说它支持RISC。 80386中,一条指令的执行需要两个时种周期。使用了多重管线之后,80486中,某些指令仅需一个时钟周期。主要是ALU中的寄存存-寄存器、寄存器-Cache的指令。
多重管线就是CPU在取址的时候有一个流水线,80486的四个部件(总线部件、解码部件、执行部件、写回部件)可以分别同时流水线化的操作,即同一时间有一条指令在执行、上一条指令在被写回、下一条指令在被解码、下下一条指令在被总线读取。具体就是这样: