The Von-Neumann Model: All major instruction set architectures today use thismodel- x86,ARM, MIPS, SPARC,Alpha, POWERUnderneath (at the microarchitecture level), theexecution model of almost all implementations (ormicroarchitectures)is very different-Pipelinedinstructionexecution:Intel80486uarch- Multiple instructions at a time: Intel Pentium uarch-Out-of-order execution:IntelPentiumPro uarch- Separate instruction and data caches. But, what happens underneath that is not consistentwiththevon'Neumannmodelisnotexposedtosoftware-DifferencebetweenISAandmicroarchitectureComputerArchitecture11
Computer Architecture The Von-Neumann Model • All major instruction set architectures today use this model – x86, ARM, MIPS, SPARC, Alpha, POWER • Underneath (at the microarchitecture level), the execution model of almost all implementations (or, microarchitectures) is very different – Pipelined instruction execution: Intel 80486 uarch – Multiple instructions at a time: Intel Pentium uarch – Out-of-order execution: Intel Pentium Pro uarch – Separate instruction and data caches • But, what happens underneath that is not consistent with the von Neumann model is not exposed to software – Difference between ISA and microarchitecture 11
What is Computer Architecture?: ISA+implementation definition: The science andart of designing, selecting, and interconnectinghardware components and designing the hardware/software interface to create a computing system thatmeets functional, performance, energy consumption,cost, and other specific goals. Traditional (only ISA) definition: “The termarchitecture is used here to describe the attributes of asystem as seen by the programmer, i.e., the conceptualstructure and functional behavior as distinct from theorganization of the dataflow and controls, the logicdesign, and the physical implementation." GeneAmdahl, IBM Journal of R&D, April 1964ComputerArchitecture12
Computer Architecture What is Computer Architecture? • ISA+implementation definition: The science and art of designing, selecting, and interconnecting hardware components and designing the hardware/ software interface to create a computing system that meets functional, performance, energy consumption, cost, and other specific goals. • Traditional (only ISA) definition: “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 dataflow and controls, the logic design, and the physical implementation.” Gene Amdahl, IBM Journal of R&D, April 1964 12
ISA vs. Microarchitecture: ISA Agreed upon interface between software andProblemhardwareAlgorithm·Sw/compiler assumes,Hw promisesProgram What the software writer needs to know toISAwrite and debug system/user programsMicroarchitecture.MicroarchitectureCircuits- Specific implementation of an ISAElectrons-Notvisibleto thesoftware·Microprocessor- ISA, uarch, circuits_“Architecture”= ISA + microarchitectureComputerArchitecture13
Computer Architecture ISA vs. Microarchitecture • ISA – Agreed upon interface between software and hardware • SW/compiler assumes, HW promises – What the software writer needs to know to write and debug system/user programs • Microarchitecture – Specific implementation of an ISA – Not visible to the software • Microprocessor – ISA, uarch, circuits – “Architecture” = ISA + microarchitecture 13 Microarchitecture ISA Program Algorithm Problem Circuits Electrons
ISA vs.Microarchitecture. What is part of ISA vs. Uarch?- Gas pedal: interface for“"acceleration"- Internals of the engine: implement “acceleration": Implementation (uarch) can be various as long as itsatisfies the specification (ISA)-Addinstructionvs.Adderimplementation· Bit serial, ripple carry, carry lookahead adders are all part ofmicroarchitecturex86ISAhasmanyimplementations:286,386,486,Pentium,PentiumPro, Pentium 4, Core, ...Microarchitecture usually changes faster than ISA- Few ISAs (x86, ARM, SPARC, MIPS, Alpha) but many uarchs- Why?ComputerArchitecture14
Computer Architecture ISA vs. Microarchitecture • What is part of ISA vs. Uarch? – Gas pedal: interface for “acceleration” – Internals of the engine: implement “acceleration” • Implementation (uarch) can be various as long as it satisfies the specification (ISA) – Add instruction vs. Adder implementation • Bit serial, ripple carry, carry lookahead adders are all part of microarchitecture – x86 ISA has many implementations: 286, 386, 486, Pentium, Pentium Pro, Pentium 4, Core, . • Microarchitecture usually changes faster than ISA – Few ISAs (x86, ARM, SPARC, MIPS, Alpha) but many uarchs – Why? 14
ISA.InstructionsOpcodes,AddressingModes,DataTypes-. Instruction Types and Formats(intel)-Registers,ConditionCodes. Memory-Addressspace,Addressability,Alignment-Virtual memory management.Call, Interrupt/Exception HandlingIntel64andIA-32ArchitecturesAccess Control, Priority/PrivilegeSoftwareDeveloper'sManualI/O: memory-mapped vs. instr.Volume 1:Task/thread ManagementBasic ArchitecturePower andThermal Management: Multi-threading support, Multiprocessor supportComputerArchitecture15
Computer Architecture ISA • Instructions – Opcodes, Addressing Modes, Data Types – Instruction Types and Formats – Registers, Condition Codes • Memory – Address space, Addressability, Alignment – Virtual memory management • Call, Interrupt/Exception Handling • Access Control, Priority/Privilege • I/O: memory-mapped vs. instr. • Task/thread Management • Power and Thermal Management • Multi-threading support, Multiprocessor support 15