Computer science 什么是指令集架构?

Computer science 什么是指令集架构?,computer-science,Computer Science,我正在读Patterson的《计算机组织与设计》第五版,我对以下几句话感到困惑: 主要是什么是ISA(指令集体系结构) 以下是一些我在纠正时遇到困难的句子: 将指令集体系结构作为一个常量进行维护,可以使该体系结构的许多实现在成本和性能上可能有所不同,从而运行相同的软件 及 术语“每条指令的时钟周期”(即每条指令执行所需的平均时钟周期数)通常缩写为CPI。由于不同的指令可能需要不同的时间量,这取决于它们所做的事情,所以CPI是程序中执行的所有指令的平均值。CPI提供了一种比较同一指令集体系结构的两

我正在读Patterson的《计算机组织与设计》第五版,我对以下几句话感到困惑:

主要是什么是ISA(指令集体系结构)

以下是一些我在纠正时遇到困难的句子:

将指令集体系结构作为一个常量进行维护,可以使该体系结构的许多实现在成本和性能上可能有所不同,从而运行相同的软件

术语“每条指令的时钟周期”(即每条指令执行所需的平均时钟周期数)通常缩写为CPI。由于不同的指令可能需要不同的时间量,这取决于它们所做的事情,所以CPI是程序中执行的所有指令的平均值。CPI提供了一种比较同一指令集体系结构的两种不同实现的方法,因为一个程序执行的指令数当然是相同的

什么是ISA的实现

我的书的定义:

我的书的定义似乎缺乏。。。或者至少我不明白我的意思:

计算机的指令集体系结构,或简称体系结构。指令集体系结构包括程序员需要知道的使二进制机器语言程序正常工作的任何内容,包括指令、I/O设备等。通常,操作系统将封装执行I/O、分配内存和其他低级系统功能的细节,以便应用程序程序员不必担心这些细节。为应用程序程序员提供的基本指令集和操作系统接口的组合称为应用程序二进制接口(ABI)

此外:

指令集架构是硬件和底层软件之间的接口。这个抽象接口使许多不同成本和性能的实现能够运行相同的软件


那么ISA是一种将软件转换为机器级指令的程序,比如打开和关闭开关吗?什么是ABI?

指令集体系结构是这些指令所代表的指令集合和相应的抽象虚拟机。可以有许多非常不同的实现,例如硬件中的随机存取存储器,它们都可以使用相同的x86 CISC ISA访问RAM的指令来访问。类似地,相同类型的硬件(例如相同的RAM)可能具有由不相关的ISA(例如x86和MIPS)公开的相同功能

ISA是对计算机响应的命令的描述,包括寻址模式、输入和输出指令以及中断处理的类型,所有这些都是CPU理解的基本机器指令

计算机制造商还将编写一些代码,这些代码是用于写入磁盘、读取键盘等的基本子程序调用。这些子例程必须以一种使用cpu如何与磁盘和其他IO交互的知识的方式编写

所以,要在汇编程序中编写代码,您需要了解机器指令,即ISA。为了能够编写执行任何IO的程序,您将使用制造商提供的子程序。子程序API和机器代码构成ABI


一个相当古老的例子是过去在IBM兼容PC上使用的BIOS。它的工作方式是计算机供应商制造计算机,并从供应商处获得操作系统。接口是一种特定的芯片架构,如8088、8086或80286,它们都有兼容的ISA。然后,计算机供应商编写一个BIOS,通过提取BIOS中的硬件地址来处理低级细节。因此,操作系统供应商不必为磁盘和串行端口配置的每个不同组合编写不同的操作系统

嗯,昨天有人问这个

谷歌8051指令集的前几个点击之一是相当不错的。让我们做一个说明:

ADD A,R2    0x2A
这将累加器中的值与寄存器R2中的值相加,并将结果存储在累加器中

左边是汇编语言语法(汇编语言是由汇编程序定义的,一个读取它的程序,除了处理器开发人员/维护人员文档中使用的标准之外,没有其他标准,但只要机器代码正确,您就可以编写自己的汇编语言。它不是标准)右边是机器代码

指令集体系结构的实现是解释指令并对其执行操作的处理器。因此,对于这条指令和整个指令集,您需要一些具有累加器寄存器、一组其他通用寄存器的逻辑,以及实现每条指令的方法。像这样的CISC很可能是由于多种原因而进行微编码的,操作码基本上会寻址到rom中的微指令表中,该表将累加器中的多工器与一个alu操作数相接,r2与另一个操作数相接,告诉alu执行加法,并将输出(结果和标志)锁存到适当的位置,然后转到下一条指令

切换到另一个指令集此指令集是arm指令集的子集

   0:   1840        adds    r0, r0, r1
   2:   1880        adds    r0, r0, r2
   4:   18c0        adds    r0, r0, r3
   6:   1900        adds    r0, r0, r4
   8:   4008        ands    r0, r1
   a:   4010        ands    r0, r2
   c:   4018        ands    r0, r3
   e:   4020        ands    r0, r4
这就是术语“编码”的意义所在。其中一些位向处理器指示每一位是什么指令,其他位指示操作数

有了定义指令集体系结构的文档,您可以让100名工程师完成1到100个实现。如果我让100名程序员给他们一个任务,拍摄一张图像,并将每个像素的红色值增加1。你会有一个(松散的)定义,我希望看到100种不同的解决方案…实现

你正在读的那本书