Instruction Set Architecture a Few Words on the Subject

Total Page:16

File Type:pdf, Size:1020Kb

Instruction Set Architecture a Few Words on the Subject Instruction Set Architecture A few words on the subject Grigory Rechistov IntelMIPT lab, MDSP project October 2010 1 Question: why caches are not included in ISA? They are not visible to programmer. ISA The part of the computer architecture related to programming. I Instructions I Registers I Addressing of memory I Native data types 2 They are not visible to programmer. ISA The part of the computer architecture related to programming. I Instructions I Registers I Addressing of memory I Native data types Question: why caches are not included in ISA? 2 ISA The part of the computer architecture related to programming. I Instructions I Registers I Addressing of memory I Native data types Question: why caches are not included in ISA? They are not visible to programmer. 2 A single instruction [prexes] <opcode> [operand1], [operand2], [operand3] I Total length of an instruction may be constant or variable depending I Prex changes behaviour of the following operation (e.g. locked, replayed, with dierent length of operands) I An operand denes what data is used and where it comes from (register, memory, constant, etc). I Amount of operands may be even more. I Sometimes an operand can be also placed in opcode value. I Sometimes opcodes can be inside operand values. 3 A single instruction [prexes] <opcode> [operand1], [operand2], [operand3] I Total length of an instruction may be constant or variable depending I Prex changes behaviour of the following operation (e.g. locked, replayed, with dierent length of operands) I An operand denes what data is used and where it comes from (register, memory, constant, etc). I Amount of operands may be even more. I Sometimes an operand can be also placed in opcode value. I Sometimes opcodes can be inside operand values. 3 Operations Common types: 1. Set a register to constant value or value of other register. 2. Loads (memory register ) & stores (register memory) 3. Read and write data from hardware devices (IO) 4. Arithmetic and Logic: 4.1 + =£... 4.2 And, Or, Xor, Not 4.3 Compare two values (result ags register) 5. Control ow 5.1 branch to another location (PC new value) 5.2 conditionally branch (if (condition) then PC new value) 5.3 save current location and jump to new location (Procedure call) 4 Registers I Program counter aka PC the immanent part of von Neumann machines. I Data registers: accumulators, counters. I Address registers. I General purpose registers (GPR): both data and address. I Status register (ags). I Stack pointer. Also can include I Segment registers. I Coprocessor device registers e.g. FPU. I Other types: control, debug, constant, model specic, vector registers, . 5 Amount of registers on misc. architectures Architecture Integer registers Double FP registers x86 8 8 x86-64 16 16 Itanium 128 128 UltraSPARC 32 32 POWER 32 32 Alpha 32 32 65021 3 0 AVR microcontroller 32 0 ARM 16 16 MMIX 256 N/A 1I need your clothes, boots and your motorcycle. Kill all humans! (Except Fry) 6 Memory addressing modes Eective memory address = f (mode; registers; constants) There are a vast amount of modes found in dierent architectures, just to name some common: I absolute I register indirect I PC relative I base register + oset I SIB: addr = base + scale £ index + oset 7 Questions: 1. What is a byte? The minimal addressable amount of data. 2. What is a machine word? The maximum amount of data a CPU can chew at a time. Data types I Integer values, signed and unsigned. I Memory adresses (mind segment:oset scheme in early x86) I Boolean types: ag register, predicate registers (64 in Itanium) I Floating point types: 64(80) bit in x87, 2 ¢ 64 or 4 ¢ 32 bit in SSE I Binary coded decimal (BCD): one byte codes 100 numbers from 0x00 to 0x99. I Tags for memory protection. Elbrus, IBM AS/400. 8 The minimal addressable amount of data. 2. What is a machine word? The maximum amount of data a CPU can chew at a time. Data types I Integer values, signed and unsigned. I Memory adresses (mind segment:oset scheme in early x86) I Boolean types: ag register, predicate registers (64 in Itanium) I Floating point types: 64(80) bit in x87, 2 ¢ 64 or 4 ¢ 32 bit in SSE I Binary coded decimal (BCD): one byte codes 100 numbers from 0x00 to 0x99. I Tags for memory protection. Elbrus, IBM AS/400. Questions: 1. What is a byte? 8 2. What is a machine word? The maximum amount of data a CPU can chew at a time. Data types I Integer values, signed and unsigned. I Memory adresses (mind segment:oset scheme in early x86) I Boolean types: ag register, predicate registers (64 in Itanium) I Floating point types: 64(80) bit in x87, 2 ¢ 64 or 4 ¢ 32 bit in SSE I Binary coded decimal (BCD): one byte codes 100 numbers from 0x00 to 0x99. I Tags for memory protection. Elbrus, IBM AS/400. Questions: 1. What is a byte? The minimal addressable amount of data. 8 The maximum amount of data a CPU can chew at a time. Data types I Integer values, signed and unsigned. I Memory adresses (mind segment:oset scheme in early x86) I Boolean types: ag register, predicate registers (64 in Itanium) I Floating point types: 64(80) bit in x87, 2 ¢ 64 or 4 ¢ 32 bit in SSE I Binary coded decimal (BCD): one byte codes 100 numbers from 0x00 to 0x99. I Tags for memory protection. Elbrus, IBM AS/400. Questions: 1. What is a byte? The minimal addressable amount of data. 2. What is a machine word? 8 Data types I Integer values, signed and unsigned. I Memory adresses (mind segment:oset scheme in early x86) I Boolean types: ag register, predicate registers (64 in Itanium) I Floating point types: 64(80) bit in x87, 2 ¢ 64 or 4 ¢ 32 bit in SSE I Binary coded decimal (BCD): one byte codes 100 numbers from 0x00 to 0x99. I Tags for memory protection. Elbrus, IBM AS/400. Questions: 1. What is a byte? The minimal addressable amount of data. 2. What is a machine word? The maximum amount of data a CPU can chew at a time. 8 Question: what architecture is IA-32? CISC, alas. One more time on RICS and CISC I CISC: more close to high-level languages, compact code, variable instruction length. I RISC: xed length, simplier decoder, easier to pipeline, overall faster. 9 CISC, alas. One more time on RICS and CISC I CISC: more close to high-level languages, compact code, variable instruction length. I RISC: xed length, simplier decoder, easier to pipeline, overall faster. Question: what architecture is IA-32? 9 One more time on RICS and CISC I CISC: more close to high-level languages, compact code, variable instruction length. I RISC: xed length, simplier decoder, easier to pipeline, overall faster. Question: what architecture is IA-32? CISC, alas. 9 Number of operands: 3 More common for CISC: IMUL EAX, DWORD [EBX + ECX*4 + OFFSET], 5 BLENDPD XMM1, XMM2, 255 10 Number of operands: 2 Commonly the rst operand is both the destination and source1, the second is source2: ADD EAX, EBX MOV [EBX], EBP Widely used in ISAs. 11 Number of operands: 1 So called accumulator machines: early computers and small microcontrollers. Most instructions specify a single explicit right operand. Implicit accumulator is used as both destination and left operand. Also, can be used with stack machines for loading/storing values from/to stack and memory: PUSH A POP RAX 12 0 ? WTF? So called stack machines. All arithmetic operations take place using the top one or two positions on the stack. Esoteric stu. Number of operands: Zero 13 So called stack machines. All arithmetic operations take place using the top one or two positions on the stack. Esoteric stu. Number of operands: Zero 0 ? WTF? 13 Number of operands: Zero 0 ? WTF? So called stack machines. All arithmetic operations take place using the top one or two positions on the stack. Esoteric stu. 13 A note on microarchitecture Microarchitecture 6= ISA I IBM TIMI (Technology-Independent Machine Interface): IBM AS/400 (48 bit CISC) POWER (RISC 64 bit) I Transmeta: x86-compatible ISA on VLIW arch. I Think about Intel vs AMD internal CPU designs. 14 Retain backward compatibility! Remember the lessons of Itanium. Instruction set extensions Are made when somebody decides it's better to have some new instructions. 1. 80286 16 bit; 2. 80386 32 bit; 3. coprocessor 8087; 4. MMX, SSEx, AVX extensions for SIMD operations; 5. AMD part: 3DNow! and AMD64 aka EMT-64 aka x86_64. 6. Virtualization support. 15 Instruction set extensions Are made when somebody decides it's better to have some new instructions. 1. 80286 16 bit; 2. 80386 32 bit; 3. coprocessor 8087; 4. MMX, SSEx, AVX extensions for SIMD operations; 5. AMD part: 3DNow! and AMD64 aka EMT-64 aka x86_64. 6. Virtualization support. Retain backward compatibility! Remember the lessons of Itanium. 15 I Alpha I ARM I IA-64 (Itanium) I IA-32, including EMT64 aka AMD64 I Loongson I MIPS I Motorola 68k I PowerPC I SPARC ISAs commonly implemented in software with hardware incarnations I Java virtual machine (ARM Jazelle) I FORTH I MMIX from The Art of Computer Programming Some examples of ISAs 16 I ARM I IA-64 (Itanium) I IA-32, including EMT64 aka AMD64 I Loongson I MIPS I Motorola 68k I PowerPC I SPARC ISAs commonly implemented in software with hardware incarnations I Java virtual machine (ARM Jazelle) I FORTH I MMIX from The Art of Computer Programming Some examples of ISAs I Alpha 16 I IA-64 (Itanium) I IA-32, including EMT64 aka AMD64 I Loongson I MIPS I Motorola 68k I PowerPC I SPARC ISAs commonly implemented in software with hardware incarnations I Java virtual machine (ARM Jazelle) I FORTH I MMIX from The Art of Computer Programming Some examples of ISAs I Alpha I ARM 16 I IA-32, including EMT64 aka AMD64 I Loongson I MIPS
Recommended publications
  • Intel® IA-64 Architecture Software Developer's Manual
    Intel® IA-64 Architecture Software Developer’s Manual Volume 1: IA-64 Application Architecture Revision 1.1 July 2000 Document Number: 245317-002 THIS DOCUMENT IS PROVIDED “AS IS” WITH NO WARRANTIES WHATSOEVER, INCLUDING ANY WARRANTY OF MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR ANY PARTICULAR PURPOSE, OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION OR SAMPLE. Information in this document is provided in connection with Intel products. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted by this document. Except as provided in Intel's Terms and Conditions of Sale for such products, Intel assumes no liability whatsoever, and Intel disclaims any express or implied warranty, relating to sale and/or use of Intel products including liability or warranties relating to fitness for a particular purpose, merchantability, or infringement of any patent, copyright or other intellectual property right. Intel products are not intended for use in medical, life saving, or life sustaining applications. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. Intel® IA-64 processors may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800- 548-4725, or by visiting Intel’s website at http://developer.intel.com/design/litcentr.
    [Show full text]
  • Donald Knuth Fletcher Jones Professor of Computer Science, Emeritus Curriculum Vitae Available Online
    Donald Knuth Fletcher Jones Professor of Computer Science, Emeritus Curriculum Vitae available Online Bio BIO Donald Ervin Knuth is an American computer scientist, mathematician, and Professor Emeritus at Stanford University. He is the author of the multi-volume work The Art of Computer Programming and has been called the "father" of the analysis of algorithms. He contributed to the development of the rigorous analysis of the computational complexity of algorithms and systematized formal mathematical techniques for it. In the process he also popularized the asymptotic notation. In addition to fundamental contributions in several branches of theoretical computer science, Knuth is the creator of the TeX computer typesetting system, the related METAFONT font definition language and rendering system, and the Computer Modern family of typefaces. As a writer and scholar,[4] Knuth created the WEB and CWEB computer programming systems designed to encourage and facilitate literate programming, and designed the MIX/MMIX instruction set architectures. As a member of the academic and scientific community, Knuth is strongly opposed to the policy of granting software patents. He has expressed his disagreement directly to the patent offices of the United States and Europe. (via Wikipedia) ACADEMIC APPOINTMENTS • Professor Emeritus, Computer Science HONORS AND AWARDS • Grace Murray Hopper Award, ACM (1971) • Member, American Academy of Arts and Sciences (1973) • Turing Award, ACM (1974) • Lester R Ford Award, Mathematical Association of America (1975) • Member, National Academy of Sciences (1975) 5 OF 44 PROFESSIONAL EDUCATION • PhD, California Institute of Technology , Mathematics (1963) PATENTS • Donald Knuth, Stephen N Schiller. "United States Patent 5,305,118 Methods of controlling dot size in digital half toning with multi-cell threshold arrays", Adobe Systems, Apr 19, 1994 • Donald Knuth, LeRoy R Guck, Lawrence G Hanson.
    [Show full text]
  • Binary and Hexadecimal
    Binary and Hexadecimal Binary and Hexadecimal Introduction This document introduces the binary (base two) and hexadecimal (base sixteen) number systems as a foundation for systems programming tasks and debugging. In this document, if the base of a number might be ambiguous, we use a base subscript to indicate the base of the value. For example: 45310 is a base ten (decimal) value 11012 is a base two (binary) value 821716 is a base sixteen (hexadecimal) value Why do we need binary? The binary number system (also called the base two number system) is the native language of digital computers. No matter how elegantly or naturally we might interact with today’s computers, phones, and other smart devices, all instructions and data are ultimately stored and manipulated in the computer as binary digits (also called bits, where a bit is either a 0 or a 1). CPUs (central processing units) and storage devices can only deal with information in this form. In a computer system, absolutely everything is represented as binary values, whether it’s a program you’re running, an image you’re viewing, a video you’re watching, or a document you’re writing. Everything, including text and images, is represented in binary. In the “old days,” before computer programming languages were available, programmers had to use sequences of binary digits to communicate directly with the computer. Today’s high level languages attempt to shield us from having to deal with binary at all. However, there are a few reasons why it’s important for programmers to understand the binary number system: 1.
    [Show full text]
  • SIMD Extensions
    SIMD Extensions PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Sat, 12 May 2012 17:14:46 UTC Contents Articles SIMD 1 MMX (instruction set) 6 3DNow! 8 Streaming SIMD Extensions 12 SSE2 16 SSE3 18 SSSE3 20 SSE4 22 SSE5 26 Advanced Vector Extensions 28 CVT16 instruction set 31 XOP instruction set 31 References Article Sources and Contributors 33 Image Sources, Licenses and Contributors 34 Article Licenses License 35 SIMD 1 SIMD Single instruction Multiple instruction Single data SISD MISD Multiple data SIMD MIMD Single instruction, multiple data (SIMD), is a class of parallel computers in Flynn's taxonomy. It describes computers with multiple processing elements that perform the same operation on multiple data simultaneously. Thus, such machines exploit data level parallelism. History The first use of SIMD instructions was in vector supercomputers of the early 1970s such as the CDC Star-100 and the Texas Instruments ASC, which could operate on a vector of data with a single instruction. Vector processing was especially popularized by Cray in the 1970s and 1980s. Vector-processing architectures are now considered separate from SIMD machines, based on the fact that vector machines processed the vectors one word at a time through pipelined processors (though still based on a single instruction), whereas modern SIMD machines process all elements of the vector simultaneously.[1] The first era of modern SIMD machines was characterized by massively parallel processing-style supercomputers such as the Thinking Machines CM-1 and CM-2. These machines had many limited-functionality processors that would work in parallel.
    [Show full text]
  • The Microarchitecture of the Pentium 4 Processor
    The Microarchitecture of the Pentium 4 Processor Glenn Hinton, Desktop Platforms Group, Intel Corp. Dave Sager, Desktop Platforms Group, Intel Corp. Mike Upton, Desktop Platforms Group, Intel Corp. Darrell Boggs, Desktop Platforms Group, Intel Corp. Doug Carmean, Desktop Platforms Group, Intel Corp. Alan Kyker, Desktop Platforms Group, Intel Corp. Patrice Roussel, Desktop Platforms Group, Intel Corp. Index words: Pentium® 4 processor, NetBurst™ microarchitecture, Trace Cache, double-pumped ALU, deep pipelining provides an in-depth examination of the features and ABSTRACT functions of the Intel NetBurst microarchitecture. This paper describes the Intel® NetBurst™ ® The Pentium 4 processor is designed to deliver microarchitecture of Intel’s new flagship Pentium 4 performance across applications where end users can truly processor. This microarchitecture is the basis of a new appreciate and experience its performance. For example, family of processors from Intel starting with the Pentium it allows a much better user experience in areas such as 4 processor. The Pentium 4 processor provides a Internet audio and streaming video, image processing, substantial performance gain for many key application video content creation, speech recognition, 3D areas where the end user can truly appreciate the applications and games, multi-media, and multi-tasking difference. user environments. The Pentium 4 processor enables real- In this paper we describe the main features and functions time MPEG2 video encoding and near real-time MPEG4 of the NetBurst microarchitecture. We present the front- encoding, allowing efficient video editing and video end of the machine, including its new form of instruction conferencing. It delivers world-class performance on 3D cache called the Execution Trace Cache.
    [Show full text]
  • Tug2007-Slides-2X2.Pdf
    Dedication ÅEÌ Professor Donald Knuth (Stanford) Extending TEX and Professor William Kahan (Berkeley) ÅEÌAFÇÆÌ with Floating-Point Arithmetic AF Nelson H. F. Beebe ÇÆÌ X and Department of Mathematics University of Utah E T Salt Lake City, UT 84112-0090 USA TEX Users Group Conference 2007 talk. – p. 1/30 TEX Users Group Conference 2007 talk. – p. 2/30 ÅEÌAFÇÆÌ Arithmetic in TEX and Arithmetic in ÅEÌAFÇÆÌ ÅEÌ ÅEÌ Binary integer arithmetic with 32 bits (T X \count ÅEÌAFÇÆÌ restricts input numbers to 12 integer bits: ≥ E registers) % mf expr Fixed-point arithmetic with sign bit, overflow bit, 14 gimme an expr: 4095 >> 4095 ≥ gimme an expr: 4096 integer bits, and 16 fractional bits (T X \dimen, E ! Enormous number has been reduced. \muskip, and \skip registers) AF >> 4095.99998 AF Overflow detected on division and multiplication but not gimme an expr: infinity >> 4095.99998 on addition (flaw (NHFB), feature (DEK)) gimme an expr: epsilon >> 0.00002 gimme an expr: 1/epsilon Gyrations sometimes needed in ÅEÌAFÇÆÌ to work ÇÆÌ ! Arithmetic overflow. ÇÆÌ Xwith and fixed-point numbers X and >> 32767.99998 Uh, oh.E A little while ago one of the quantities gimmeE an expr: 1/3 >> 0.33333 that I was computing got too large, so I’m afraid gimme an expr: 3*(1/3) >> 0.99998 T T your answers will be somewhat askew. You’ll gimme an expr: 1.2 • 2.3 >> •1.1 probably have to adopt different tactics next gimme an expr: 1.2 • 2.4 >> •1.2 time. But I shall try to carry on anyway.
    [Show full text]
  • Typeset MMIX Programs with TEX Udo Wermuth Abstract a TEX Macro
    TUGboat, Volume 35 (2014), No. 3 297 Typeset MMIX programs with TEX Example: In section 9 the lines \See also sec- tion 10." and \This code is used in section 24." are given. Udo Wermuth No such line appears in section 10 as it only ex- tends the replacement code of section 9. (Note that Abstract section 10 has in its headline the number 9.) In section 24 the reference to section 9 stands for all of ATEX macro package is presented as a literate pro- the eight code lines stated in sections 9 and 10. gram. It can be included in programs written in the If a section is not used in any other section then languages MMIX or MMIXAL without affecting the it is a root and during the extraction of the code a assembler. Such an instrumented file can be pro- file is created that has the name of the root. This file cessed by TEX to get nicely formatted output. Only collects all the code in the sequence of the referenced a new first line and a new last line must be entered. sections from the code part. The collection process And for each end-of-line comment a flag is set to for all root sections is called tangle. A second pro- indicate that the comment is written in TEX. cess is called weave. It outputs the documentation and the code parts as a TEX document. How to read the following program Example: The following program has only one The text that starts in the next chapter is a literate root that is defined in section 4 with the headline program [2, 1] written in a style similar to noweb [7].
    [Show full text]
  • Itanium-Based Solutions by Hp
    Itanium-based solutions by hp an overview of the Itanium™-based hp rx4610 server a white paper from hewlett-packard june 2001 table of contents table of contents 2 executive summary 3 why Itanium is the future of computing 3 rx4610 at a glance 3 rx4610 product specifications 4 rx4610 physical and environmental specifications 4 the rx4610 and the hp server lineup 5 rx4610 architecture 6 64-bit address space and memory capacity 6 I/O subsystem design 7 special features of the rx4610 server 8 multiple upgrade and migration paths for investment protection 8 high availability and manageability 8 advanced error detection, correction, and containment 8 baseboard management controller (BMC) 8 redundant, hot-swap power supplies 9 redundant, hot-swap cooling 9 hot-plug disk drives 9 hot-plug PCI I/O slots 9 internal removable media 10 system control panel 10 ASCII console for hp-ux 10 space-saving rack density 10 complementary design and packaging 10 how hp makes the Itanium transition easy 11 binary compatibility 11 hp-ux operating system 11 seamless transition—even for home-grown applications 12 transition help from hp 12 Itanium quick start service 12 partner technology access centers 12 upgrades and financial incentives 12 conclusion 13 for more information 13 appendix: Itanium advantages in your computing future 14 hp’s CPU roadmap 14 Itanium processor architecture 15 predication enhances parallelism 15 speculation minimizes the effect of memory latency 15 inherent scalability delivers easy expansion 16 what this means in a server 16 2 executive The Itanium™ Processor Family is the next great stride in computing--and it’s here today.
    [Show full text]
  • Arduino and AVR
    Arduino and AVR Ke vin J Dola n a nd Eric Te ve lson Agenda • History of Arduino • Comparison to Other Platforms • Arduino Uno - Hardware • ATmega328P Peripherals • Instruction Set • Processor Components • Pipe lining • Programming • Applica tions • Future of Arduino History of Arduino • Fa mily of Microcontrolle rs cre a te d a s a ma ste rs the sis proje ct • intended for use by a non-technical audience of artists, designers, etc. • Made for accessibility and ease of use. • Programming made easy for the audience • Ability to program board via USB • Inexpensive price point • Expanded for other types and configurations • Example: Arduino Lilypad for wearable technologies • Popularity has expanded functionality including “shields” and Bluetooth. Comparison to Other Platforms • Raspberry Pi • Raspberry Pi is a full computer that can run and support an OS, and has built in graphics. • Porta bility is a n issue , since a n e xte rna l supply is ne e de d. • Network needs more setup on an Arduino • Raspberry Pi does not support analog sensors as well • Teensy • Less expensive • Compatible with Arduino “sketches” and “shields” • Be tte r ADC sa mpling, sa me functiona lity, be tte r re solution • Sma lle r physica l boa rd size Arduino Uno - Hardware • ATmega328P Microcontroller • 3 2 KB Fla s h Me m o ry (2 KB S RAM, 1 KB EEP RO M) • 16 MH z C lo c k • 14 Digita l I/O Pins • 6 PWM Digita l I/O Pins • 6 Analog Input Pins • Up to 20mA DC Current per I/O Pin up to 300mA total across all pins • 50mA DC Current on 3.3V Pin Arduino Uno - Hardware ATmega328P Peripherals • Total of 6 accessible A/D Pins on Port C • 14 GPIO (7 Pins each from PORT B & D) • UART (Se ria l) • SPI Support • Watchdog timer to reset CPU Instruction Set • Harvard Architecture, which is non-von Neumann memory, but still a von Neumann architecture.
    [Show full text]
  • Exposing Native Device Apis to Web Apps
    Exposing Native Device APIs to Web Apps Arno Puder Nikolai Tillmann Michał Moskal San Francisco State University Microsoft Research Microsoft Research Computer Science One Microsoft Way One Microsoft Way Department Redmond, WA 98052 Redmond, WA 98052 1600 Holloway Avenue [email protected] [email protected] San Francisco, CA 94132 [email protected] ABSTRACT language of the respective platform, HTML5 technologies A recent survey among developers revealed that half plan to gain traction for the development of mobile apps [12, 4]. use HTML5 for mobile apps in the future. An earlier survey A recent survey among developers revealed that more than showed that access to native device APIs is the biggest short- half (52%) are using HTML5 technologies for developing mo- coming of HTML5 compared to native apps. Several dif- bile apps [22]. HTML5 technologies enable the reuse of the ferent approaches exist to overcome this limitation, among presentation layer and high-level logic across multiple plat- them cross-compilation and packaging the HTML5 as a na- forms. However, an earlier survey [21] on cross-platform tive app. In this paper we propose a novel approach by using developer tools revealed that access to native device APIs a device-local service that runs on the smartphone and that is the biggest shortcoming of HTML5 compared to native acts as a gateway to the native layer for HTML5-based apps apps. Several different approaches exist to overcome this running inside the standard browser. WebSockets are used limitation. Besides the development of native apps for spe- for bi-directional communication between the web apps and cific platforms, popular approaches include cross-platform the device-local service.
    [Show full text]
  • Cloud Native Trail Map 2
    1. CONTAINERIZATION • Commonly done with Docker containers • Any size application and dependencies (even PDP-11 code running on an emulator) can be containerized • Over time, you should aspire towards splitting suitable applications and writing future functionality as microservices CLOUD NATIVE TRAIL MAP 2. CI/CD • Setup Continuous Integration/Continuous Delivery (CI/CD) so The Cloud Native Landscape l.cncf.io that changes to your source code automatically result in a new has a large number of options. This Cloud container being built, tested, and deployed to staging and Native Trail Map is a recommended process eventually, perhaps, to production for leveraging open source, cloud native • Setup automated rollouts, roll backs and testing technologies. At each step, you can choose • Argo is a set of Kubernetes-native tools for a vendor-supported offering or do it yourself, deploying and running jobs, applications, and everything after step #3 is optional workflows, and events using GitOps based on your circumstances. 3. ORCHESTRATION & paradigms such as continuous and progressive delivery and MLops CNCF Incubating APPLICATION DEFINITION HELP ALONG THE WAY • Kubernetes is the market-leading orchestration solution • You should select a Certified Kubernetes Distribution, 4. OBSERVABILITY & ANALYSIS Hosted Platform, or Installer: cncf.io/ck A. Training and Certification • Helm Charts help you define, install, and upgrade • Pick solutions for monitoring, logging and tracing Consider training offerings from CNCF even the most complex Kubernetes application • Consider CNCF projects Prometheus for monitoring, and then take the exam to become a Fluentd for logging and Jaeger for Tracing Certified Kubernetes Administrator or a • For tracing, look for an OpenTracing-compatible Certified Kubernetes Application Developer implementation like Jaeger cncf.io/training CNCF Graduated CNCF Graduated B.
    [Show full text]
  • Chapter 1: Microprocessor Architecture
    Chapter 1: Microprocessor architecture ECE 3120 – Fall 2013 Dr. Mohamed Mahmoud http://iweb.tntech.edu/mmahmoud/ [email protected] Outline 1.1 Computer hardware organization 1.1.1 Number System 1.1.2 Computer hardware organization 1.2 The processor 1.3 Memory system operation 1.4 Program Execution 1.5 HCS12 Microcontroller 1.1.1 Number System - Computer hardware uses binary numbers to perform all operations. - Human beings are used to decimal number system. Conversion is often needed to convert numbers between the internal (binary) and external (decimal) representations. - Octal and hexadecimal numbers have shorter representations than the binary system. - The binary number system has two digits 0 and 1 - The octal number system uses eight digits 0 and 7 - The hexadecimal number system uses 16 digits: 0, 1, .., 9, A, B, C,.., F 1 - 1 - A prefix is used to indicate the base of a number. - Convert %01000101 to Hexadecimal = $45 because 0100 = 4 and 0101 = 5 - Computer needs to deal with signed and unsigned numbers - Two’s complement method is used to represent negative numbers - A number with its most significant bit set to 1 is negative, otherwise it is positive. 1 - 2 1- Unsigned number %1111 = 1 + 2 + 4 + 8 = 15 %0111 = 1 + 2 + 4 = 7 Unsigned N-bit number can have numbers from 0 to 2N-1 2- Signed number %1111 is a negative number. To convert to decimal, calculate the two’s complement The two’s complement = one’s complement +1 = %0000 + 1 =%0001 = 1 then %1111 = -1 %0111 is a positive number = 1 + 2 + 4 = 7.
    [Show full text]