can anyone explain them with differences?
I searched for the differences all over the internet but unable to find them.
can anyone explain them with differences?
I searched for the differences all over the internet but unable to find them.
The terms don't have specific enough meanings to say there's an exact difference. For example, they're tag synonyms on Stack Overflow.
You might use the term ISA if you're including other properties of the architecture like what operations are guaranteed atomic, the memory model, the page-table layout, semantics of HW interrupt handling.
But if you just said "instruction set", it's more likely you're referring to stuff about the available instructions and their machine-code encodings specifically, e.g. the vol.2 part of Intel's x86 manuals (HTML extract https://www.felixcloutier.com/x86/). So for example, atomic CAS is available as lock cmpxchg [mem], reg
, widening multiply / narrowing divide and add-with-carry are available (mul
/ div
/ adc
) for extended-precision stuff. popcnt
is available to count set bits in a register in one hardware instruction.
Or more generally, x86 is mostly a 2-operand ISA for instructions like add reg, r/m
, with AVX and a few other extensions adding 3-operand instructions like vaddps xmm0, xmm1, [rdi]
.
However, you certain can use "ISA" when talking about what instructions an architecture provides. There's no hard and fast specific meaning to these terms, and in a lot of cases they can be used interchangeably.
Leaving out the "architecture" part of the abbreviation makes sense if you're just talking about instructions specifically, not other behaviour, but you don't have to do that. (In fact I did it myself in this answer, when I said x86 is a "2-operand ISA", vs. MIPS being a 3-operand architecture.)
In some ways, I'm trying to invent a possible difference in meaning just because you asked. If you don't have some clue from usage context that an author is making a distinction, assume they aren't.