架构和微架构

Architecture and microarchitecture

谁能大致解释一下处理器架构与其微架构之间的区别以及它们之间的关系?

一个应该与它的功能部分有关,但另一个我没有看到

正式意义上的架构是独立于时序和其他实现细节的公开呈现的接口。微体系结构包括某些实现细节,通常在晶体管和工艺技术之上。例如,ARMv7-A 是一种架构,而 ARM Cortex-A15 是实现 ARMv7-A 的微架构。完全相同的微体系结构的不同实现将提供周期相同的时序(不包括内核外部时序因素并假设同步设计),但周期时间、能效和面积可能会有所不同,具体取决于所使用的工艺技术、所使用的设备库、等等

架构有时不太正式或更笼统地用于指定微架构(例如,"Haswell architecture")。架构也可以用在硬件接口的上下文中(例如,引脚架构是指一种引脚布局,可提供跨一系列部件的兼容性)。

在某些情况下,尽管官方文档允许变化,但微架构细节最终会被视为架构细节。例如,缓存块分配指令(如 Power 的 DCBA)可能被定义为提供未定义的位模式,但初始实现可能始终保留缓存命中时的位模式,并始终在未命中时插入全零块。 (通过此指令提供对随机数生成器的访问将与体系结构一致。)软件可能会因依赖此实现细节而牺牲理想的可移植性。 (如果足够多的重要软件以这种方式不可移植,则体系结构定义可能会扩展以将其定义为有保证的行为。)

体系结构(较少使用微体系结构)可用于描述(正式微体系结构的)接口定义的更一般分组。例如,x86 被称为架构,尽管它代表了各种软件接口,这些接口大多是兼容的,特别是在保留早期定义的接口特性方面。体系结构系列有时用于指代这种更广泛的接口共享。

作为参考,Gene Amdahl 等人使用了架构。在 "Architecture of the IBM System/360"(1964 年,PDF):"The term architecture is used here to describe the attributes of a system as seen by the programmer, i.e., the conceptual structure and functional behavior, as distinct from the organization of the data flow and controls, the logical design, and the physical implementation."