Презентация Machine-Level Programming I: Basics онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Machine-Level Programming I: Basics абсолютно бесплатно. Урок-презентация на эту тему содержит всего 55 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Machine-Level Programming I: Basics
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:55 слайдов
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:2.54 MB
- Просмотров:82
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№4 слайд
![Intel x Processors Dominate](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img3.jpg)
Содержание слайда: Intel x86 Processors
Dominate laptop/desktop/server market
Evolutionary design
Backwards compatible up until 8086, introduced in 1978
Added more features as time goes on
Now 3 volumes, about 5,000 pages of documentation
Complex instruction set computer (CISC)
Many different instructions with many different formats
But, only small subset encountered with Linux programs
Hard to match performance of Reduced Instruction Set Computers (RISC)
But, Intel has done just that!
In terms of speed. Less so for low power.
№5 слайд
![Intel x Evolution Milestones](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img4.jpg)
Содержание слайда: Intel x86 Evolution: Milestones
Name Date Transistors MHz
8086 1978 29K 5-10
First 16-bit Intel processor. Basis for IBM PC & DOS
1MB address space
386 1985 275K 16-33
First 32 bit Intel processor , referred to as IA32
Added “flat addressing”, capable of running Unix
Pentium 4E 2004 125M 2800-3800
First 64-bit Intel x86 processor, referred to as x86-64
Core 2 2006 291M 1060-3333
First multi-core Intel processor
Core i7 2008 731M 1600-4400
Four cores (our shark machines)
№6 слайд
![Intel x Processors, cont.](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img5.jpg)
Содержание слайда: Intel x86 Processors, cont.
Machine Evolution
386 1985 0.3M
Pentium 1993 3.1M
Pentium/MMX 1997 4.5M
PentiumPro 1995 6.5M
Pentium III 1999 8.2M
Pentium 4 2000 42M
Core 2 Duo 2006 291M
Core i7 2008 731M
Core i7 Skylake 2015 1.9B
Added Features
Instructions to support multimedia operations
Instructions to enable more efficient conditional operations
Transition from 32 bits to 64 bits
More cores
№7 слайд
![Intel x Processors, cont.](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img6.jpg)
Содержание слайда: Intel x86 Processors, cont.
Past Generations
1st Pentium Pro 1995 600 nm
1st Pentium III 1999 250 nm
1st Pentium 4 2000 180 nm
1st Core 2 Duo 2006 65 nm
Recent Generations
Nehalem 2008 45 nm
Sandy Bridge 2011 32 nm
Ivy Bridge 2012 22 nm
Haswell 2013 22 nm
Broadwell 2014 14 nm
Skylake 2015 14 nm
Kaby Lake 2016 14 nm
Coffee Lake 2017? 14 nm
Cannonlake 2018? 10 nm
№9 слайд
![x Clones Advanced Micro](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img8.jpg)
Содержание слайда: x86 Clones: Advanced Micro Devices (AMD)
Historically
AMD has followed just behind Intel
A little bit slower, a lot cheaper
Then
Recruited top circuit designers from Digital Equipment Corp. and other downward trending companies
Built Opteron: tough competitor to Pentium 4
Developed x86-64, their own extension to 64 bits
Recent Years
Intel got its act together
Leads the world in semiconductor technology
AMD has fallen behind
Relies on external semiconductor manufacturer
№10 слайд
![Intel s -Bit History Intel](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img9.jpg)
Содержание слайда: Intel’s 64-Bit History
2001: Intel Attempts Radical Shift from IA32 to IA64
Totally different architecture (Itanium)
Executes IA32 code only as legacy
Performance disappointing
2003: AMD Steps in with Evolutionary Solution
x86-64 (now called “AMD64”)
Intel Felt Obligated to Focus on IA64
Hard to admit mistake or that AMD is better
2004: Intel Announces EM64T extension to IA32
Extended Memory 64-bit Technology
Almost identical to x86-64!
All but low-end x86 processors support x86-64
But, lots of code still runs in 32-bit mode
№14 слайд
![Definitions Architecture also](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img13.jpg)
Содержание слайда: Definitions
Architecture: (also ISA: instruction set architecture) The parts of a processor design that one needs to understand for writing assembly/machine code.
Examples: instruction set specification, registers
Microarchitecture: Implementation of the architecture
Examples: cache sizes and core frequency
Code Forms:
Machine Code: The byte-level programs that a processor executes
Assembly Code: A text representation of machine code
Example ISAs:
Intel: x86, IA32, Itanium, x86-64
ARM: Used in almost all mobile phones
RISC V: New open-source ISA
№15 слайд
![Assembly Machine Code View](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img14.jpg)
Содержание слайда: Assembly/Machine Code View
Programmer-Visible State
PC: Program counter
Address of next instruction
Called “RIP” (x86-64)
Register file
Heavily used program data
Condition codes
Store status information about most recent arithmetic or logical operation
Used for conditional branching
№16 слайд
![Assembly Characteristics Data](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img15.jpg)
Содержание слайда: Assembly Characteristics: Data Types
“Integer” data of 1, 2, 4, or 8 bytes
Data values
Addresses (untyped pointers)
Floating point data of 4, 8, or 10 bytes
(SIMD vector data types of 8, 16, 32 or 64 bytes)
Code: Byte sequences encoding series of instructions
No aggregate types such as arrays or structures
Just contiguously allocated bytes in memory
№19 слайд
![Assembly Characteristics](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img18.jpg)
Содержание слайда: Assembly Characteristics: Operations
Transfer data between memory and register
Load data from memory into register
Store register data into memory
Perform arithmetic function on register or memory data
Transfer control
Unconditional jumps to/from procedures
Conditional branches
Indirect branches
№20 слайд
![Moving Data Moving Data movq](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img19.jpg)
Содержание слайда: Moving Data
Moving Data
movq Source, Dest
Operand Types
Immediate: Constant integer data
Example: $0x400, $-533
Like C constant, but prefixed with ‘$’
Encoded with 1, 2, or 4 bytes
Register: One of 16 integer registers
Example: %rax, %r13
But %rsp reserved for special use
Others have special uses for particular instructions
Memory: 8 consecutive bytes of memory at address given by register
Simplest example: (%rax)
Various other “addressing modes”
№22 слайд
![Simple Memory Addressing](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img21.jpg)
Содержание слайда: Simple Memory Addressing Modes
Normal (R) Mem[Reg[R]]
Register R specifies memory address
Aha! Pointer dereferencing in C
movq (%rcx),%rax
Displacement D(R) Mem[Reg[R]+D]
Register R specifies start of memory region
Constant displacement D specifies offset
movq 8(%rbp),%rdx
№31 слайд
![Simple Memory Addressing](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img30.jpg)
Содержание слайда: Simple Memory Addressing Modes
Normal (R) Mem[Reg[R]]
Register R specifies memory address
Aha! Pointer dereferencing in C
movq (%rcx),%rax
Displacement D(R) Mem[Reg[R]+D]
Register R specifies start of memory region
Constant displacement D specifies offset
movq 8(%rbp),%rdx
№32 слайд
![Complete Memory Addressing](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img31.jpg)
Содержание слайда: Complete Memory Addressing Modes
Most General Form
D(Rb,Ri,S) Mem[Reg[Rb]+S*Reg[Ri]+ D]
D: Constant “displacement” 1, 2, or 4 bytes
Rb: Base register: Any of 16 integer registers
Ri: Index register: Any, except for %rsp
S: Scale: 1, 2, 4, or 8 (why these numbers?)
Special Cases
(Rb,Ri) Mem[Reg[Rb]+Reg[Ri]]
D(Rb,Ri) Mem[Reg[Rb]+Reg[Ri]+D]
(Rb,Ri,S) Mem[Reg[Rb]+S*Reg[Ri]]
№36 слайд
![Address Computation](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img35.jpg)
Содержание слайда: Address Computation Instruction
leaq Src, Dst
Src is address mode expression
Set Dst to address denoted by expression
Uses
Computing addresses without a memory reference
E.g., translation of p = &x[i];
Computing arithmetic expressions of the form x + k*y
k = 1, 2, 4, or 8
Example
№37 слайд
![Some Arithmetic Operations](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img36.jpg)
Содержание слайда: Some Arithmetic Operations
Two Operand Instructions:
Format Computation
addq Src,Dest Dest = Dest + Src
subq Src,Dest Dest = Dest Src
imulq Src,Dest Dest = Dest * Src
salq Src,Dest Dest = Dest << Src Also called shlq
sarq Src,Dest Dest = Dest >> Src Arithmetic
shrq Src,Dest Dest = Dest >> Src Logical
xorq Src,Dest Dest = Dest ^ Src
andq Src,Dest Dest = Dest & Src
orq Src,Dest Dest = Dest | Src
Watch out for argument order! Src,Dest
(Warning: Intel docs use “op Dest,Src”)
No distinction between signed and unsigned int (why?)
№45 слайд
![What it really looks like](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img44.jpg)
Содержание слайда: What it really looks like
.globl sumstore
.type sumstore, @function
sumstore:
.LFB35:
.cfi_startproc
pushq %rbx
.cfi_def_cfa_offset 16
.cfi_offset 3, -16
movq %rdx, %rbx
call plus
movq %rax, (%rbx)
popq %rbx
.cfi_def_cfa_offset 8
ret
.cfi_endproc
.LFE35:
.size sumstore, .-sumstore
№46 слайд
![What it really looks like](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img45.jpg)
Содержание слайда: What it really looks like
.globl sumstore
.type sumstore, @function
sumstore:
.LFB35:
.cfi_startproc
pushq %rbx
.cfi_def_cfa_offset 16
.cfi_offset 3, -16
movq %rdx, %rbx
call plus
movq %rax, (%rbx)
popq %rbx
.cfi_def_cfa_offset 8
ret
.cfi_endproc
.LFE35:
.size sumstore, .-sumstore
№47 слайд
![Assembly Characteristics Data](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img46.jpg)
Содержание слайда: Assembly Characteristics: Data Types
“Integer” data of 1, 2, 4, or 8 bytes
Data values
Addresses (untyped pointers)
Floating point data of 4, 8, or 10 bytes
(SIMD vector data types of 8, 16, 32 or 64 bytes)
Code: Byte sequences encoding series of instructions
No aggregate types such as arrays or structures
Just contiguously allocated bytes in memory
№48 слайд
![Assembly Characteristics](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img47.jpg)
Содержание слайда: Assembly Characteristics: Operations
Transfer data between memory and register
Load data from memory into register
Store register data into memory
Perform arithmetic function on register or memory data
Transfer control
Unconditional jumps to/from procedures
Conditional branches
Indirect branch
№49 слайд
![Object Code Assembler](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img48.jpg)
Содержание слайда: Object Code
Assembler
Translates .s into .o
Binary encoding of each instruction
Nearly-complete image of executable code
Missing linkages between code in different files
Linker
Resolves references between files
Combines with static run-time libraries
E.g., code for malloc, printf
Some libraries are dynamically linked
Linking occurs when program begins execution
№55 слайд
![Machine Programming I Summary](/documents_6/eeb844c7d4a4969ed9f35ab1ed76effa/img54.jpg)
Содержание слайда: Machine Programming I: Summary
History of Intel processors and architectures
Evolutionary design leads to many quirks and artifacts
C, assembly, machine code
New forms of visible state: program counter, registers, ...
Compiler must transform statements, expressions, procedures into low-level instruction sequences
Assembly Basics: Registers, operands, move
The x86-64 move instructions cover wide range of data movement forms
Arithmetic
C compiler will figure out different instruction combinations to carry out computation
Скачать все slide презентации Machine-Level Programming I: Basics одним архивом:
Похожие презентации
-
High and low level programming languages. Basics of programming languages
-
Basic programming
-
High and low level programming languages
-
Алгоритмическая структура ветвление на языке Visual Basic
-
Логические переменные в Visual Basic
-
Программирование. Оператор Mod в Visual Basic
-
Строковые функции в Visual Basic
-
Языки программирования QBasic и Turbo Pascal 7. 0
-
Графические возможности языка Visual Basic
-
Язык программирования Qbasic