system - 架构和微架构

标签 system cpu cpu-architecture micro-architecture

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

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

最佳答案

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

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

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

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

作为引用,架构由 Gene Amdahl 等人使用。在“IBM System/360 体系结构”(1964 年,PDF)中:“术语体系结构在这里用于描述程序员所看到的系统属性,即概念结构和功能行为,与数据流和控制的组织、逻辑设计和物理实现。”

关于system - 架构和微架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35200938/

相关文章:

java - setDefaultCloseOperation(HIDE_ON_CLOSE) 和系统托盘图标

linux - 如何设置非root用户的cronjob?

jquery - 有什么方法可以修复/重构这个 jQuery 脚本,使其消耗更少的内存并运行得更快吗? (我使用的是1.6.2)

c++ - int32_t 的延迟是否低于 int8_t、int16_t 和 int64_t?

unix - 如何从命令行找出计算机的体系结构?

php - 如何从 PHP 调用 MySQL 交互式客户端?

javascript - 获取 CPU/GPU/内存信息

linux - 如何在 Linux 中获取 CPU 缓存的大小

rename - 当我们可以增加架构中的寄存器数量时,为什么要重命名寄存器?

c++ - 如何在 C++ 中 "modify"系统 ("pause")