SlideShare a Scribd company logo
1 of 18
Architectural Support for
High-Level Languages
Submitted by:
Sudhanshu Janwadkar (M314310)
Abstraction in software design
 Assemble-level abstraction
• A programmer who writes directly with the raw machine
instruction set
• Expressing the program in terms of instructions, addresses,
registers, bytes and words
 High-level languages
• Allows the programmer to think in terms of abstractions
that are above the machine level
• The programmer may not even know on which machine the
program will ultimately run The RISC philosophy focusing
instruction set design on flexible primitive operations from
which the complier can build its high level operations
Data types
 ARM support for characters
• For handling characters is the unsigned byte load and store
instruction
 ANSI (American National Standards Institute) C basic data types
• Defines the following basic data types
– Signed and unsigned characters of at least eight bits
– Signed and unsigned short integers of at least 16 bits
– Signed and unsigned integers of at least 16 bits
– Signed and unsigned long integers of at least 32 bits
– Floating-point, double and long double floating-point numbers
– Enumerated types
– Bitfields (sets of Boolean variables)
• The ARM C complier adopts the minimum sizes for each of these
types
• The standard integer uses 32-bit values
Data types(Contd)
 ANCI C derived data types
• Defines derived data types
– Arrays, Functions, Structures, Pointers, Unions
• ARM pointers are 32 bits long and resemble unsigned integers
• The ARM C compiler aligns characters on byte boundaries, short
integers at even addresses and all other types on word boundaries
 ARM architectural support for C data types
• Provides native support for signed and unsigned 32-bit integers and
for unsigned bytes, covering the C integer, long integer and
unsigned character types
• For arrays and structures: base plus scaled index addressing
• Current versions of the ARM include signed byte and signed and
unsigned 16-bit loads and stores, providing some native support for
short integer and signed character types
Expressions
 Register use
• The key to the efficient evaluation of a complex expression is to get
the required values into the registers in the right order and to
ensure that frequently used values are normally resident in
registers
• Optimizing this trade-off between the number of values that can be
held in registers and the number of registers remaining is a major
task for the complier
 ARM support
• The 3-address instruction format used by the ARM gives the
compiler the maximum flexibility
• Thumb instructions (generally 2-address)
– restricts the compiler’s freedom to some extent
– smaller number of general registers also makes its job harder
Expressions(contd)
 Accessing operands
• A procedure will normally work with operands that are presented in one of the
following ways, and can be accessed as indicated as an argument passed through a
register
– The value is already in a register, so no further work is necessary as a argument
passed on the stack
– Stack pointer (r13) relative addressing with an immediate offset known at
compile-time allows the operand to be collected with a single LDR
• As a constant in the procedure’s literal pool
– PC-relative addressing, again with an immediate offset known at compile-time,
gives access with a single LDR
• As a local variable
– Local variables are allocated space on the stack and are accessed by
• a stack pointer relative LDR
• As a global variable
– Global (and static) variables are allocated space in the static area and are
accessed by static base (is usually in r9) relative addressing
Expressions(contd)
 Pointer arithmetic
• Arithmetic on pointers depends on the size of the data types that
the pointers are pointing to
• If a variable is used as an offset it must be scaled at run-time
• if p is held in r0 and i in r1, the change to p may be compiled as:
ADD r0, r0, r1, LSL #2 ; scale r1 to int
 Arrays
• The declaration: int a[10];
– a reference to a[i] is equivalent to the pointer-plus-offset form
*(a+i)
Conditional statements
 if…else
• The ARM architecture offers unusually efficient support for conditional expressions
when the conditionally executed statement is small
• More complex ‘if’ statements: more conventional solution
Conditional statements(contd)
switches
• ARM is to use a jump table
Conditional statements(contd)
Loops
For loops
for (i=0; i<10; i++) {a[i] = 0; }
• It can be further improved by moving the test to the bottom of the loop
Loops(contd)
While loops
• The standard conceptual arrangement of a ‘while’ loop is as follow
• One fewer branch is executed each time the complete ‘while’ structure is
encountered
Functions and procedures
 Program design
• Large programs are broken down into components that are small
enough be thoroughly tested
• How small software component performs its operation should be of
no significance to the rest of the program (abstraction)
 Program hierarchy
• The full program should be designed as a hierarchy of components
• Lower-level routines may be shared by higher-level routines, calls
may skip levels, and the depth may vary across the hierarchy
 Leaf routines
• At the lowest level of the hierarchy
• Do not call any lower-level routines
• Bottom-level routines will be library or system functions
Functions and procedures(contd)
 Subroutine
– A generic term for a routine that is called by a higher-level routine,
particularly when viewing a program at the assembly language level
 Function
– A subroutine which returns a value through its name
c = max (a, b);
 Procedure
– A subroutine which is called to carry out some operation on specified
data item(s)
printf (“Hello Worldn”);
 Argument: an expression passed to a function call
 Parameter: a value received by the function
• C uses a strict “call by value” semantics.
Functions and procedures(contd)
 ARM Procedure Call Standard
• The ARM Procedure Call Standard (APCS) is employed by the ARM C
compiler
• It defines particular uses for the ‘general-purpose’ registers
• It defines which form of stack is used from the full/empty,
ascending/descending choices
• It defines the format of a stack-based data structure used for back-
tracing when debugging programs
• It defines the function argument and result passing mechanism to
be used by all externally visible functions and procedures
• It supports the ARM shared library mechanism
– which means it supports a standard way for shared (re-entrant)
code to access static data
Functions and procedures(contd)
 APCS variants
• There are several (16) different variants of the APCS which are used to generate code for a range of
different systems, they support:
• 32- or 26- bit PCs
– Older ARM processors operated in a 26-bit address space
– Some later versions continue to support this for backwards compatibility
• Implicit or explicit stack-limit checking
– The compiler can insert instructions to perform explicit checks for stack overflow
– Where memory management hardware is available, an ARM system can allocate memory to
the stack in units of a page (no need to insert instructions)
• Two way to pass floating-point arguments
– Make extensive use – use eight floating-point registers
– Make little or no use – use the integer registers and/or on the stack
• Re-entrant or non-re-entrant code
– Code as re-entrant is position-independent and addresses all data indirectly through the static
base register (sb)
– This code can be placed in a ROM and can be shared by several processes
Thank You

More Related Content

What's hot

Real Time Kernels
Real Time KernelsReal Time Kernels
Real Time KernelsArnav Soni
 
Serial Peripheral Interface(SPI)
Serial Peripheral Interface(SPI)Serial Peripheral Interface(SPI)
Serial Peripheral Interface(SPI)Dhaval Kaneria
 
Introduction to arm processor
Introduction to arm processorIntroduction to arm processor
Introduction to arm processorRAMPRAKASHT1
 
Hardware Software Codesign
Hardware Software CodesignHardware Software Codesign
Hardware Software Codesigndestruck
 
Arm assembly language programming
Arm assembly language programmingArm assembly language programming
Arm assembly language programmingv Kalairajan
 
Introduction to arm architecture
Introduction to arm architectureIntroduction to arm architecture
Introduction to arm architectureZakaria Gomaa
 
Arm modes
Arm modesArm modes
Arm modesabhi165
 
Arm processors' architecture
Arm processors'   architectureArm processors'   architecture
Arm processors' architectureDr.YNM
 
Advanced Pipelining in ARM Processors.pptx
Advanced Pipelining  in ARM Processors.pptxAdvanced Pipelining  in ARM Processors.pptx
Advanced Pipelining in ARM Processors.pptxJoyChowdhury30
 
Unit 3 devices&amp;buses
Unit 3 devices&amp;busesUnit 3 devices&amp;buses
Unit 3 devices&amp;busesPavithra S
 
Arm instruction set
Arm instruction setArm instruction set
Arm instruction setPriyangaKR1
 
ARM - Advance RISC Machine
ARM - Advance RISC MachineARM - Advance RISC Machine
ARM - Advance RISC MachineEdutechLearners
 
Introducion to MSP430 Microcontroller.pptx
Introducion to MSP430 Microcontroller.pptxIntroducion to MSP430 Microcontroller.pptx
Introducion to MSP430 Microcontroller.pptxDr.YNM
 
Pic microcontroller architecture
Pic microcontroller architecturePic microcontroller architecture
Pic microcontroller architectureJamia Hamdard
 
Binary parallel adder
Binary parallel adderBinary parallel adder
Binary parallel adderanu surya
 

What's hot (20)

Real Time Kernels
Real Time KernelsReal Time Kernels
Real Time Kernels
 
ARM Processors
ARM ProcessorsARM Processors
ARM Processors
 
ARM Architecture
ARM ArchitectureARM Architecture
ARM Architecture
 
Serial Peripheral Interface(SPI)
Serial Peripheral Interface(SPI)Serial Peripheral Interface(SPI)
Serial Peripheral Interface(SPI)
 
Introduction to arm processor
Introduction to arm processorIntroduction to arm processor
Introduction to arm processor
 
Hardware Software Codesign
Hardware Software CodesignHardware Software Codesign
Hardware Software Codesign
 
06. thumb instructions
06. thumb instructions06. thumb instructions
06. thumb instructions
 
Arm assembly language programming
Arm assembly language programmingArm assembly language programming
Arm assembly language programming
 
Introduction to arm architecture
Introduction to arm architectureIntroduction to arm architecture
Introduction to arm architecture
 
Arm modes
Arm modesArm modes
Arm modes
 
Arm processor
Arm processorArm processor
Arm processor
 
ARM- Programmer's Model
ARM- Programmer's ModelARM- Programmer's Model
ARM- Programmer's Model
 
Arm processors' architecture
Arm processors'   architectureArm processors'   architecture
Arm processors' architecture
 
Advanced Pipelining in ARM Processors.pptx
Advanced Pipelining  in ARM Processors.pptxAdvanced Pipelining  in ARM Processors.pptx
Advanced Pipelining in ARM Processors.pptx
 
Unit 3 devices&amp;buses
Unit 3 devices&amp;busesUnit 3 devices&amp;buses
Unit 3 devices&amp;buses
 
Arm instruction set
Arm instruction setArm instruction set
Arm instruction set
 
ARM - Advance RISC Machine
ARM - Advance RISC MachineARM - Advance RISC Machine
ARM - Advance RISC Machine
 
Introducion to MSP430 Microcontroller.pptx
Introducion to MSP430 Microcontroller.pptxIntroducion to MSP430 Microcontroller.pptx
Introducion to MSP430 Microcontroller.pptx
 
Pic microcontroller architecture
Pic microcontroller architecturePic microcontroller architecture
Pic microcontroller architecture
 
Binary parallel adder
Binary parallel adderBinary parallel adder
Binary parallel adder
 

Viewers also liked

Run time, frequently, non-frequently reconfigurable system &
Run time, frequently, non-frequently reconfigurable system &Run time, frequently, non-frequently reconfigurable system &
Run time, frequently, non-frequently reconfigurable system &Sudhanshu Janwadkar
 
Unit II Arm 7 Introduction
Unit II Arm 7 IntroductionUnit II Arm 7 Introduction
Unit II Arm 7 IntroductionDr. Pankaj Zope
 
2 aircraft flight instruments
2 aircraft flight instruments2 aircraft flight instruments
2 aircraft flight instrumentsSolo Hermelin
 
Aircraft instruments
Aircraft instrumentsAircraft instruments
Aircraft instrumentsKamaraja AS
 
Aircraft instrumentsystems
Aircraft instrumentsystemsAircraft instrumentsystems
Aircraft instrumentsystemsMahnil
 

Viewers also liked (8)

Run time, frequently, non-frequently reconfigurable system &
Run time, frequently, non-frequently reconfigurable system &Run time, frequently, non-frequently reconfigurable system &
Run time, frequently, non-frequently reconfigurable system &
 
Ppt
PptPpt
Ppt
 
Unit II Arm 7 Introduction
Unit II Arm 7 IntroductionUnit II Arm 7 Introduction
Unit II Arm 7 Introduction
 
2 aircraft flight instruments
2 aircraft flight instruments2 aircraft flight instruments
2 aircraft flight instruments
 
Gyroscopes
Gyroscopes Gyroscopes
Gyroscopes
 
Aircraft instruments
Aircraft instrumentsAircraft instruments
Aircraft instruments
 
Aircraft instrumentsystems
Aircraft instrumentsystemsAircraft instrumentsystems
Aircraft instrumentsystems
 
Gyroscope
GyroscopeGyroscope
Gyroscope
 

Similar to Architectural support for High Level Language

Embedded computing platform design
Embedded computing platform designEmbedded computing platform design
Embedded computing platform designRAMPRAKASHT1
 
10 instruction sets characteristics
10 instruction sets characteristics10 instruction sets characteristics
10 instruction sets characteristicsAnwal Mirza
 
Introduction to Simplified instruction computer or SIC/XE
Introduction to Simplified instruction computer or SIC/XEIntroduction to Simplified instruction computer or SIC/XE
Introduction to Simplified instruction computer or SIC/XETemesgen Molla
 
Compiler Construction
Compiler ConstructionCompiler Construction
Compiler ConstructionAhmed Raza
 
Computer organization basics
Computer organization  basicsComputer organization  basics
Computer organization basicsDeepak John
 
introduction to embedded systems part 1
introduction to embedded systems part 1introduction to embedded systems part 1
introduction to embedded systems part 1Hatem Abd El-Salam
 
Advanced Processor Power Point Presentation
Advanced Processor  Power Point  PresentationAdvanced Processor  Power Point  Presentation
Advanced Processor Power Point PresentationPrashantYadav931011
 
PPT in register and micro operations in electronic
PPT in register and micro operations in electronicPPT in register and micro operations in electronic
PPT in register and micro operations in electronicaaravjamela
 

Similar to Architectural support for High Level Language (20)

Mod 3.pptx
Mod 3.pptxMod 3.pptx
Mod 3.pptx
 
Embedded computing platform design
Embedded computing platform designEmbedded computing platform design
Embedded computing platform design
 
10 instruction sets characteristics
10 instruction sets characteristics10 instruction sets characteristics
10 instruction sets characteristics
 
Introduction to Simplified instruction computer or SIC/XE
Introduction to Simplified instruction computer or SIC/XEIntroduction to Simplified instruction computer or SIC/XE
Introduction to Simplified instruction computer or SIC/XE
 
Compiler Construction
Compiler ConstructionCompiler Construction
Compiler Construction
 
13 risc
13 risc13 risc
13 risc
 
Computer organization basics
Computer organization  basicsComputer organization  basics
Computer organization basics
 
introduction to embedded systems part 1
introduction to embedded systems part 1introduction to embedded systems part 1
introduction to embedded systems part 1
 
CD U1-5.pptx
CD U1-5.pptxCD U1-5.pptx
CD U1-5.pptx
 
Advanced Processor Power Point Presentation
Advanced Processor  Power Point  PresentationAdvanced Processor  Power Point  Presentation
Advanced Processor Power Point Presentation
 
SS-CISC -1.pptx
SS-CISC -1.pptxSS-CISC -1.pptx
SS-CISC -1.pptx
 
PPT in register and micro operations in electronic
PPT in register and micro operations in electronicPPT in register and micro operations in electronic
PPT in register and micro operations in electronic
 
ARM Architecture
ARM ArchitectureARM Architecture
ARM Architecture
 
RISC.ppt
RISC.pptRISC.ppt
RISC.ppt
 
13 risc
13 risc13 risc
13 risc
 
CAO.pptx
CAO.pptxCAO.pptx
CAO.pptx
 
Assembler
AssemblerAssembler
Assembler
 
OpenPOWER Webinar
OpenPOWER Webinar OpenPOWER Webinar
OpenPOWER Webinar
 
SS-assemblers 1.pptx
SS-assemblers 1.pptxSS-assemblers 1.pptx
SS-assemblers 1.pptx
 
The Phases of a Compiler
The Phases of a CompilerThe Phases of a Compiler
The Phases of a Compiler
 

More from Sudhanshu Janwadkar

Keypad Interfacing with 8051 Microcontroller
Keypad Interfacing with 8051 MicrocontrollerKeypad Interfacing with 8051 Microcontroller
Keypad Interfacing with 8051 MicrocontrollerSudhanshu Janwadkar
 
ASIC design Flow (Digital Design)
ASIC design Flow (Digital Design)ASIC design Flow (Digital Design)
ASIC design Flow (Digital Design)Sudhanshu Janwadkar
 
Fpga architectures and applications
Fpga architectures and applicationsFpga architectures and applications
Fpga architectures and applicationsSudhanshu Janwadkar
 
Introduction to 8051 Timer/Counter
Introduction to 8051 Timer/CounterIntroduction to 8051 Timer/Counter
Introduction to 8051 Timer/CounterSudhanshu Janwadkar
 
Architecture of the Intel 8051 Microcontroller
Architecture of the Intel 8051 MicrocontrollerArchitecture of the Intel 8051 Microcontroller
Architecture of the Intel 8051 MicrocontrollerSudhanshu Janwadkar
 
Introduction to Embedded Systems
Introduction to Embedded SystemsIntroduction to Embedded Systems
Introduction to Embedded SystemsSudhanshu Janwadkar
 
Interconnects in Reconfigurable Architectures
Interconnects in Reconfigurable ArchitecturesInterconnects in Reconfigurable Architectures
Interconnects in Reconfigurable ArchitecturesSudhanshu Janwadkar
 
Design and Implementation of a GPS based Personal Tracking System
Design and Implementation of a GPS based Personal Tracking SystemDesign and Implementation of a GPS based Personal Tracking System
Design and Implementation of a GPS based Personal Tracking SystemSudhanshu Janwadkar
 
Embedded Logic Flip-Flops: A Conceptual Review
Embedded Logic Flip-Flops: A Conceptual ReviewEmbedded Logic Flip-Flops: A Conceptual Review
Embedded Logic Flip-Flops: A Conceptual ReviewSudhanshu Janwadkar
 

More from Sudhanshu Janwadkar (20)

DSP Processors versus ASICs
DSP Processors versus ASICsDSP Processors versus ASICs
DSP Processors versus ASICs
 
Keypad Interfacing with 8051 Microcontroller
Keypad Interfacing with 8051 MicrocontrollerKeypad Interfacing with 8051 Microcontroller
Keypad Interfacing with 8051 Microcontroller
 
ASIC design Flow (Digital Design)
ASIC design Flow (Digital Design)ASIC design Flow (Digital Design)
ASIC design Flow (Digital Design)
 
Fpga architectures and applications
Fpga architectures and applicationsFpga architectures and applications
Fpga architectures and applications
 
LCD Interacing with 8051
LCD Interacing with 8051LCD Interacing with 8051
LCD Interacing with 8051
 
Interrupts in 8051
Interrupts in 8051Interrupts in 8051
Interrupts in 8051
 
Serial Communication in 8051
Serial Communication in 8051Serial Communication in 8051
Serial Communication in 8051
 
SPI Bus Protocol
SPI Bus ProtocolSPI Bus Protocol
SPI Bus Protocol
 
I2C Protocol
I2C ProtocolI2C Protocol
I2C Protocol
 
Introduction to 8051 Timer/Counter
Introduction to 8051 Timer/CounterIntroduction to 8051 Timer/Counter
Introduction to 8051 Timer/Counter
 
Intel 8051 Programming in C
Intel 8051 Programming in CIntel 8051 Programming in C
Intel 8051 Programming in C
 
Hardware View of Intel 8051
Hardware View of Intel 8051Hardware View of Intel 8051
Hardware View of Intel 8051
 
Architecture of the Intel 8051 Microcontroller
Architecture of the Intel 8051 MicrocontrollerArchitecture of the Intel 8051 Microcontroller
Architecture of the Intel 8051 Microcontroller
 
Introduction to Embedded Systems
Introduction to Embedded SystemsIntroduction to Embedded Systems
Introduction to Embedded Systems
 
CMOS Logic
CMOS LogicCMOS Logic
CMOS Logic
 
Interconnects in Reconfigurable Architectures
Interconnects in Reconfigurable ArchitecturesInterconnects in Reconfigurable Architectures
Interconnects in Reconfigurable Architectures
 
Introduction to FPGAs
Introduction to FPGAsIntroduction to FPGAs
Introduction to FPGAs
 
Design and Implementation of a GPS based Personal Tracking System
Design and Implementation of a GPS based Personal Tracking SystemDesign and Implementation of a GPS based Personal Tracking System
Design and Implementation of a GPS based Personal Tracking System
 
Embedded Logic Flip-Flops: A Conceptual Review
Embedded Logic Flip-Flops: A Conceptual ReviewEmbedded Logic Flip-Flops: A Conceptual Review
Embedded Logic Flip-Flops: A Conceptual Review
 
Pass Transistor Logic
Pass Transistor LogicPass Transistor Logic
Pass Transistor Logic
 

Recently uploaded

Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineeringmalavadedarshan25
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learningmisbanausheenparvam
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 

Recently uploaded (20)

young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineering
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learning
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 

Architectural support for High Level Language

  • 1. Architectural Support for High-Level Languages Submitted by: Sudhanshu Janwadkar (M314310)
  • 2. Abstraction in software design  Assemble-level abstraction • A programmer who writes directly with the raw machine instruction set • Expressing the program in terms of instructions, addresses, registers, bytes and words  High-level languages • Allows the programmer to think in terms of abstractions that are above the machine level • The programmer may not even know on which machine the program will ultimately run The RISC philosophy focusing instruction set design on flexible primitive operations from which the complier can build its high level operations
  • 3. Data types  ARM support for characters • For handling characters is the unsigned byte load and store instruction  ANSI (American National Standards Institute) C basic data types • Defines the following basic data types – Signed and unsigned characters of at least eight bits – Signed and unsigned short integers of at least 16 bits – Signed and unsigned integers of at least 16 bits – Signed and unsigned long integers of at least 32 bits – Floating-point, double and long double floating-point numbers – Enumerated types – Bitfields (sets of Boolean variables) • The ARM C complier adopts the minimum sizes for each of these types • The standard integer uses 32-bit values
  • 4. Data types(Contd)  ANCI C derived data types • Defines derived data types – Arrays, Functions, Structures, Pointers, Unions • ARM pointers are 32 bits long and resemble unsigned integers • The ARM C compiler aligns characters on byte boundaries, short integers at even addresses and all other types on word boundaries  ARM architectural support for C data types • Provides native support for signed and unsigned 32-bit integers and for unsigned bytes, covering the C integer, long integer and unsigned character types • For arrays and structures: base plus scaled index addressing • Current versions of the ARM include signed byte and signed and unsigned 16-bit loads and stores, providing some native support for short integer and signed character types
  • 5. Expressions  Register use • The key to the efficient evaluation of a complex expression is to get the required values into the registers in the right order and to ensure that frequently used values are normally resident in registers • Optimizing this trade-off between the number of values that can be held in registers and the number of registers remaining is a major task for the complier  ARM support • The 3-address instruction format used by the ARM gives the compiler the maximum flexibility • Thumb instructions (generally 2-address) – restricts the compiler’s freedom to some extent – smaller number of general registers also makes its job harder
  • 6. Expressions(contd)  Accessing operands • A procedure will normally work with operands that are presented in one of the following ways, and can be accessed as indicated as an argument passed through a register – The value is already in a register, so no further work is necessary as a argument passed on the stack – Stack pointer (r13) relative addressing with an immediate offset known at compile-time allows the operand to be collected with a single LDR • As a constant in the procedure’s literal pool – PC-relative addressing, again with an immediate offset known at compile-time, gives access with a single LDR • As a local variable – Local variables are allocated space on the stack and are accessed by • a stack pointer relative LDR • As a global variable – Global (and static) variables are allocated space in the static area and are accessed by static base (is usually in r9) relative addressing
  • 7. Expressions(contd)  Pointer arithmetic • Arithmetic on pointers depends on the size of the data types that the pointers are pointing to • If a variable is used as an offset it must be scaled at run-time • if p is held in r0 and i in r1, the change to p may be compiled as: ADD r0, r0, r1, LSL #2 ; scale r1 to int  Arrays • The declaration: int a[10]; – a reference to a[i] is equivalent to the pointer-plus-offset form *(a+i)
  • 8. Conditional statements  if…else • The ARM architecture offers unusually efficient support for conditional expressions when the conditionally executed statement is small • More complex ‘if’ statements: more conventional solution
  • 11. Loops For loops for (i=0; i<10; i++) {a[i] = 0; } • It can be further improved by moving the test to the bottom of the loop
  • 12. Loops(contd) While loops • The standard conceptual arrangement of a ‘while’ loop is as follow • One fewer branch is executed each time the complete ‘while’ structure is encountered
  • 13. Functions and procedures  Program design • Large programs are broken down into components that are small enough be thoroughly tested • How small software component performs its operation should be of no significance to the rest of the program (abstraction)  Program hierarchy • The full program should be designed as a hierarchy of components • Lower-level routines may be shared by higher-level routines, calls may skip levels, and the depth may vary across the hierarchy  Leaf routines • At the lowest level of the hierarchy • Do not call any lower-level routines • Bottom-level routines will be library or system functions
  • 14.
  • 15. Functions and procedures(contd)  Subroutine – A generic term for a routine that is called by a higher-level routine, particularly when viewing a program at the assembly language level  Function – A subroutine which returns a value through its name c = max (a, b);  Procedure – A subroutine which is called to carry out some operation on specified data item(s) printf (“Hello Worldn”);  Argument: an expression passed to a function call  Parameter: a value received by the function • C uses a strict “call by value” semantics.
  • 16. Functions and procedures(contd)  ARM Procedure Call Standard • The ARM Procedure Call Standard (APCS) is employed by the ARM C compiler • It defines particular uses for the ‘general-purpose’ registers • It defines which form of stack is used from the full/empty, ascending/descending choices • It defines the format of a stack-based data structure used for back- tracing when debugging programs • It defines the function argument and result passing mechanism to be used by all externally visible functions and procedures • It supports the ARM shared library mechanism – which means it supports a standard way for shared (re-entrant) code to access static data
  • 17. Functions and procedures(contd)  APCS variants • There are several (16) different variants of the APCS which are used to generate code for a range of different systems, they support: • 32- or 26- bit PCs – Older ARM processors operated in a 26-bit address space – Some later versions continue to support this for backwards compatibility • Implicit or explicit stack-limit checking – The compiler can insert instructions to perform explicit checks for stack overflow – Where memory management hardware is available, an ARM system can allocate memory to the stack in units of a page (no need to insert instructions) • Two way to pass floating-point arguments – Make extensive use – use eight floating-point registers – Make little or no use – use the integer registers and/or on the stack • Re-entrant or non-re-entrant code – Code as re-entrant is position-independent and addresses all data indirectly through the static base register (sb) – This code can be placed in a ROM and can be shared by several processes