The instruction set consists of addressing modes, instructions, native data types, registers, memory architecture, interrupt, and exception handling, and external I/O. An example of an instruction set is the x86 instruction set, which is common to find on computers today.
Contents. Base In the early decades of computing, there were computers that used binary, and even. Contemporary computers are almost exclusively binary. Bits are often described as n- architectures. Today n is often 8, 16, 32, or 64, but other sizes have been used. This is actually a strong simplification.
A computer architecture often has a few more or less 'natural' datasizes in the, but the hardware implementation of these may be very different. Many architectures have instructions operating on half and/or twice the size of respective processors' major internal datapaths. Examples of this are the, as well as many others. On this type of implementations, a twice as wide operation typically also takes around twice as many clock cycles (which is not the case on high performance implementations). On the 68000, for instance, this means 8 instead of 4 clock ticks, and this particular chip may be described as a architecture with a implementation. The external databus width is often not useful to determine the width of the architecture; the were basically the same 32-bit chip with different external data buses.
The NS32764 had a bus, but used 32-bit registers. The width of addresses may or may not be different from the width of data. Early 32-bit microprocessors often had a 24-bit address, as did the processors. Operands.
Main article: The number of operands is one of the factors that may give an indication about the performance of the instruction set. A three-operand architecture will allow A:= B + C to be computed in one instruction. A two-operand architecture will allow A:= A + B to be computed in one instruction, so two instructions will need to be executed to simulate a single three-operand instruction A:= B A:= A + C Endianness An architecture may use 'big' or 'little' endianness, or both, or be configurable to use either. Little endian processors order in memory with the least significant byte of a multi-byte value in the lowest-numbered memory location. Big endian architectures instead order them with the most significant byte at the lowest-numbered address.
The x86 architecture as well as several architectures are little endian. Most architectures (SPARC, Power, PowerPC, MIPS) were originally big endian (ARM was little endian), but many (including ARM) are now configurable. Endianness only applies to processors that allow individual addressing of units of data (such as ) that are smaller than the basic addressable machine word. Instruction sets Usually the number of registers is a power of two, e.g. In some cases a hardwired-to-zero pseudo-register is included, as 'part' of of architectures, mostly to simplify indexing modes. This table only counts the integer 'registers' usable by general instructions at any moment. Architectures always include special-purpose registers such as the program pointer (PC).
Those are not counted unless mentioned. Note that some architectures, such as SPARC, have; for those architectures, the count below indicates how many registers are available within a register window. Also, non-architected registers for are not counted. Note, a common type of architecture, 'load-store', is a synonym for 'Register Register' below, meaning no instructions access memory except special – load to register(s) – and store from register(s) – with the possible exceptions of atomic memory operations for locking. The table below compares basic information about instruction sets to be implemented in the CPU architectures: Archi- tecture Bits Version Intro- duced Max # Type Design (excluding FP/vector) Instruction encoding evaluation Extensions Open Royalty free 8 1975 1 Register Memory CISC 3 Variable (8- to 32-bit) Condition register Little 68000 / 32 1979 2 Register Memory 8 data and 8 address Variable Condition register Big 8 1974 2 Register Memory CISC 8 Variable (8 to 24 bits) Condition register Little 32 (8→32) 1977?
1 Register Register CISC. 7 in 16-bit thumb mode.
15 in 32-bit Fixed (32-bit), Thumb: Fixed (16-bit), Thumb-2: Variable (16- and 32-bit) Condition code Bi NEON, VFP, LPAE No 64/32 ARMv8-A 2011 3 Register Register RISC 32 (including the stack pointer/'zero' register) Fixed (32-bit). da Cruz, Frank (October 18, 2004). Columbia University Computing History. Retrieved January 28, 2019.
Trogemann, Georg; Nitussov, Alexander Y.; Ernst, Wolfgang (2001). Computing in Russia: the history of computer devices and information technology revealed. Vieweg+Teubner Verlag. Pp. 19, 55, 57, 91, 104–107.
The LEA (8086 & later) and IMUL-immediate (80186 & later) instructions accept three operands; most other instructions of the base integer ISA accept no more than two operands. Retrieved 26 May 2012. Retrieved 2008-06-15.
Retrieved 2009-05-10. Retrieved 2009-12-18. Since memory is an array of 60-bit words with no means to access sub-units, big endian vs.
Little endian makes no sense. The optional CMU unit uses big endian semantics. Real World Technologies. ^ Alexander Klaiber (January 2000). Transmeta Corporation.
Retrieved December 6, 2013. Retrieved 2009-12-18. Retrieved 2009-12-18. Retrieved 2013-08-12.
Oracle SPARC Processor Documentation.
Classification of Instruction Sets Classification of Instruction Sets The instruction sets can be differentiated by Operand storage in the CPU Number of explicit operands per instruction Operand location Operations Type and size of operands The type of internal storage in the CPU is the most basic differentiation. The major choices are a stack (the operands are implicitly on top of the stack) an accumulator (one operand is implicitly the accumulator) a set of registers (all operands are explicit either registers or memory locations) The code segment C = A + B how it would appear on the classes of instruction sets Stack Accumulator Register PUSH A Load A Load R1,A PUSH B ADD B ADD R1,B ADD Store C Store C,R1 POP C While most early machines used stack or accumulator-style architectures, all machines designed in the past ten years use a general purpose architecture. The reason is the registers are: faster then memory easier for a compiler to use can be used more effectively Primary advantages and disadvantages of each class of machine Machine Type Advantages Disadvantages Stack Simple model of expression evaluation. Good code density. A stack can't be randomly accessed.
It makes it difficult to generate efficient code. Accumulator Minimizes internal state of machine. Short instructions Since accumulator is only temporary storage, memory traffic is highest. Register Most general model for code generation All operands must be named, leading to longer instructions. Classification of General Purpose Register Machines There are two major instruction set characteristics that divide GPR architectures.
They concern whether an ALU instruction has two or three operands ADD R3, R1, R2 R3.
Comments are closed.
|
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |