Curs Microcontrolere

Total Page:16

File Type:pdf, Size:1020Kb

Curs Microcontrolere PREFAŢĂ Se consideră anul 1971, când INTEL a anunţat producerea primului microprocesor, ca momentul trecerii de la electronica implementată cablat la electronica realizată programat. Primul microprocesor 4004 a fost conceput de M. E. Hoff ca un procesor puţin simplificat pentru a putea fi implementat, la vremea aceea, pe un singur chip în siliciu. Iniţial, microprocesorul nu a fost un computer- on-a-chip, deşi în timp a ajuns la acest stadiu; conceptul de microprocesor s-a dezvoltat şi spre alte implementări specifice: microcontroller, microcalculator, procesor de semnale (DSP). Oricare din aceste circuite, pentru a deveni parte a unui sistem, impune un proces de proiectare care se bazează în egală măsură atât pe componenta hardware cât şi pe componenta software. Microprocesorul, sau celelalte variante ale sale, integrat într-un sistem aduc acestuia acea performanţă, care atunci când este realizată de fiinţa umană este referită ca inteligenţă. În general, microprocesorul este integrat ca unitate centrală de procesare în sistemele digitale de calcul. Actual, aproape toate sistemele au o arhitectură de sistem digital particularizându-se în funcţie de aplicare/utilizare. Aplicaţiile care nu sunt, în sensul clasic, sisteme digitale de calcul sunt în general implementate pe bază de microprocesor sau DSP. Implementările sistemelor pe bază de microcontroller ori DSP devin simple şi ieftine -–pentru că utilizează deja o componentă de serie, devin performante – pentru că utilizează o componentă care poate asigura suport pentru inteligenţă, devin flexibile – pentru că utilizează o componentă ce poate fi programată. Forţa care a impus sistemele pe bază de microcontroller constă în programabilitatea unei componente de serie. Pentru sistemele la care o componentă de serie, chiar programabilă în software, nu duce la rezultatele cele mai bune au apărut implementările pe bază de circuite ASIC (Application Specific Integrated Circuits). Spre deosebire de sistemele pe bază de microcontroller, unde funcţionarea dorită se obţine, în software, printr-un anumit program, la sistemele pe bază de circuite ASIC funcţionarea dorită se obţine prin structurarea hardware- ului cu un anumit program. Alegerea între o implementare pe bază de microcontroller, o implementare pe bază de circuit ASIC sau una combinată depinde de aplicaţia respectivă şi de cerinţele impuse. Prezenta carte constituie un material, dar fără a absolutiza, pentru abordarea sistemelor pe bază de microcontroller. Materialul prezentat şi CD-ul VI MICROCONTROLLERE alăturat asigură un traseu de la descrierea funcţionării unui microcontroller generic, dar şi cu exemplificări comerciale, până la analiza, sinteza implementarea şi testarea unui sistem. Deoarece oferta pe piaţă pentru microcontrollere este vastă şi variată, pe acest traseu s-a accentuat prezentarea comparativă şi critică încercând să se imprime cititorului analiza lucidă în faţa avalanşei agresive a ofertelor de piaţă. Cartea a fost elaborată în cadrul programului Tempus RESUME (REtraining SUpport for small and Medium Enterprises) de la Universitatea TRANSILVANIA din Braşov, program care a avut printre obiective şi sprijinul dezvoltării de sisteme pe bază de microcontrollere în/şi pentru întreprinderi mici şi mijlocii. Ţinând cont de această adresă cartea nu este destinată numai inginerilor în specialitatea de electronică şi ingineria calculatoarelor ci şi inginerilor de alte specialităţi care au o practică sau doresc să abordeze acest domeniu al sistemelor pe bază de microcontroller. Nu există actual produse de HiTech care să nu se bazeze direct sau indirect pe microprocesor sau microcontroller. În consecinţă, într-o economie de tranziţie, cum este a noastră, care doreşte să se impună, formarea de personal care să ştie să proiecteze/implementeze/exploateze sisteme pe bază de microcontroller este o necesitate prioritară. Mulţumim tuturor celor care ne-au sprijinit, colegilor Catedrei de Electronică şi Calculatoare, d-l asist. ing. Răzvan Brătucu şi mai ales domnilor profesori Marcian Cîrstea de la DMU Leicester - Marea Britanie, Josef Hoffmann de la Fachhochschule Karlsruhe - Germania, Dr. Peter Corcoran - National University of Ireland, MSC Eng.Petronel Bigioi, doctorand la Universitatea Transilvania Braşov precum şi studenţilor aceleiaşi universităţi. Braşov, Ianuarie 2001 CUPRINS DESCRIERE GENERALĂ ________________________________________________ 1 1.1 ISTORIC __________________________________________________________ 1 1.2 SCHEMA BLOC GENERALĂ ____________________________________________ 3 1.3 ARHITECTURA MC__________________________________________________ 5 1.3.1 Unitatea centrală de prelucrare ____________________________________ 6 1.3.2 Memoria _____________________________________________________ 8 1.3.3 Dispozitive I/O _______________________________________________ 10 1.4 SISTEMUL DE ÎNTRERUPERI___________________________________________ 28 1.5 MANAGEMENTUL PUTERII____________________________________________ 34 1.6 SCHEMA BLOC A UNUI MC____________________________________________ 35 1.7 FAMILII DE MC ___________________________________________________ 37 1.8 CLASIFICAREA MC ________________________________________________ 41 PROGRAMAREA SISTEMELOR CU MC _________________________________ 43 2.1 PROIECTAREA PROGRAMELOR DE APLICAŢIE _____________________________ 43 2.1.1 Generalităţi __________________________________________________ 43 2.1.2 Instrucţiuni ale MC____________________________________________ 50 2.1.3 Instrumente software de proiectare: MC 8051 _______________________ 56 2.1.4 Instrumente software de proiectare: MC PIC ________________________ 67 MICROCONTROLLERE MOTOROLA ___________________________________ 71 3.1 MC M68HC05____________________________________________________ 72 3.1.1 Memoria internă ______________________________________________ 72 3.1.2 Unitatea centrală______________________________________________ 73 3.1.3 Moduri de adresare____________________________________________ 75 3.1.4 Setul de instrucţiuni ___________________________________________ 76 3.1.5 Sistemul de întreruperi _________________________________________ 77 3.1.6 Interfeţe şi periferice on-chip ____________________________________ 78 3.1.7 Managementul puterii__________________________________________ 87 3.1.8 Autoverificarea _______________________________________________ 88 3.1.9 Programarea EPROM__________________________________________ 88 3.2 MC M68HC08____________________________________________________ 89 3.2.1 Unitatea centrală 6808 _________________________________________ 90 3.2.2 Interfeţe şi periferice on-chip ____________________________________ 91 3.2.3 Programarea memoriei EEPROM ________________________________ 96 3.3 MC PE 16 BIŢI - 6816_______________________________________________ 97 3.3.1 Modulul de integrare (SIM, System Integration Module) ______________ 98 3.3.2 Interfeţe_____________________________________________________ 98 3.4 MC PE 32 DE BIŢI - 68300 ___________________________________________ 99 3.5 DATE COMPARATIVE PENTRU MC MOTOROLA –CISC_____________________ 100 VIII MICROCONTROLLERE FAMILIA MCS-51_____________________________________________________ 101 4.1 STRUCTURA ŞI FUNCŢIONAREA_______________________________________ 102 4.1.1 Gestionarea memoriei_________________________________________ 104 4.1.2 Circuitele timer______________________________________________ 104 4.1.3 Interfaţa serială UART ________________________________________ 106 4.1.4 Sistemul de întreruperi ________________________________________ 106 4.1.5 Operarea cu economie de energie________________________________ 108 4.2 PROGRAMAREA MC DIN FAMILIA MCS-51 _____________________________ 108 4.2.1 Setul de instrucţiuni 8051 ______________________________________ 108 4.2.2 Modurile de adresare _________________________________________ 110 4.3 ALTE INTERFEŢE ŞI PERIFERICE ON-CHIP ______________________________ 111 4.3.1 Interfaţa I2C (Siemens P80CL580)_______________________________ 111 4.3.2 Aria de numărătoare programabilă (PCA) _________________________ 113 4.3.3 MC cu interfaţă pentru RAM nevolatil - NVRAM (Dallas DS5000FP) __ 115 4.3.4 MC specializat pentru TV şi video (PHILIPS 83C145) _______________ 115 4.3.5 MC cu arie configurabilă (TRISCEND E5) ________________________ 116 4.4 SISTEM MINIMAL CU 8051 __________________________________________ 118 4.5 DATE COMPARATIVE PENTRU MC DIN FAMILIA MCS-51___________________ 119 MICROCONTROLLERE RISC _________________________________________ 121 5.1 MICROCONTROLLER PIC ___________________________________________ 121 5.1.1 PIC12 _____________________________________________________ 121 5.1.2 PIC16 _____________________________________________________ 125 5.1.3 PIC17 _____________________________________________________ 127 5.2 MC ATMEL ____________________________________________________ 129 5.2.1 Familia AVR________________________________________________ 129 5.2.2 Familia ARM _______________________________________________ 138 CRITERII DE PROIECTARE ___________________________________________ 141 6.1 CRITERIILE PENTRU ALEGEREA UNUI MC_______________________________ 141 6.2 ALGORITMUL PROIECTĂRII SISTEMELOR CU MC __________________________ 143 6.3 PROIECTAREA SISTEMELOR CU MC ÎN VEDEREA SIGURANŢEI ÎN EXPLOATARE __ 145 6.3.1 Cablajul imprimat ____________________________________________ 146 6.3.2 Ceasul de gardă______________________________________________ 147 6.3.3 Programarea defensivă ________________________________________ 147 APLICAŢII___________________________________________________________
Recommended publications
  • Software Problems of an Experimental Robot
    PERIODICA POLITECHHICA SER EL ENG. VOL 46, NO J-J. PP. 151-16112002) SOFTWARE PROBLEMS OF AN EXPERIMENTAL ROBOT CONTROLLER BASED ON QNX REAL-TIME OPERATING SYSTEMS Istvan OLAH and Gdbor TEVESZ Department of Auiomation and Applied Informatics Budapest University of Technology and Economics H-l 111 Budapest, Goldmann Gyorgy tc"r 3. Hungary Phone: (+36-1)463-2870, Fax: (436-1)463-2871 e-mail: [email protected]; [email protected] Received: July 1,2003 Abstract At the Department of Automation and Applied Informatics an experimental robot control system has been developed. The purpose of this research is to study modern robot control algorithms and their realization in a real environment. The project focuses on the problems of multiprocessor systems including the task distribution and communication. Another field of this research is to integrate a six-component forcc-torquc sensor into the robot control system and making use of this information in new robot control algorithms. Another purpose of this study is to examine the software problems of an IBM PC-based multiprocessor system controlling a NOKIA-PUMA 560 humanoid robot arm. The features and system services of the new QNX Neutrino operating system is presented in comparison with the previously used QNX v4. The main areas of the version upgrade will be shown focusing on the interprocess communication questions. The processing components of this multiprocessor robot control system with its external interfaces will be discussed later and some further system level development possibilities will be outlined. This final part of the study gives the summary of the architectural and communication requirements of a hybrid position and force control system in the above environment.
    [Show full text]
  • Μc/OS-II User's Manual 1
    µC/OS-II TM The Real-Time Kernel User’s Manual Jean J. Labrosse Weston, FL 33326 µC/OS-II User's Manual 1. µC/OS-II User Manual . 2 1.1 Preface . 3 1.2 Getting Started with µC/OS-II . 8 1.3 Real-Time Systems Concepts . 45 1.4 Kernel Structure . 94 1.5 Task Management . 151 1.6 Time Management . 183 1.7 Timer Management . 193 1.8 Event Control Blocks . 205 1.9 Semaphore Management . 219 1.10 Mutual Exclusion Semaphores . 235 1.11 Event Flag Management . 256 1.12 Message Mailbox Management . 285 1.13 Message Queue Management . 305 1.14 Memory Management . 333 1.15 Porting µC/OS-II . 350 1.16 80x86 Port with Emulated FP Support . 413 1.17 80x86 Port with Hardware FP Support . 460 1.18 Thread Safety of the Compiler’s Run-Time Library . 492 1.19 µC/OS-II API Reference . 500 1.20 µC/OS-II Configuration Manual . 670 1.21 PC Services . 697 1.22 C Coding Conventions . 724 1.23 Licensing Policy for µC/OS-II . 739 1.24 µC/OS-II Quick Reference . 740 1.25 TO Utility . 750 1.26 Bibliography . 752 µC/OS-II User Manual µC/OS-II User's Manual µC/OS-II User Manual This book describes the design and implementation of µC/OS-II (pronounced “Micro C O S 2”), which stands for Micro-Controller Operating System Version 2. µC/OS-II is a completely portable, ROMable, scalable, preemptive, real-time, multitasking kernel. µC/OS-II is written in ANSI C and contains a small portion of assembly language code to adapt it to different processor architectures.
    [Show full text]
  • CV Full Version
    CURRICULUM VITAE M C Willett Name : Mike Willett Online CV at : http://vsmt.21-dc.com Address : 16011 Arenzano (GE), Italy. Poole, Dorset, BH16 5LF, England Telephone : t. +44 1212 886044 (24/7) m. +39 348 002 0847 E-mail : [email protected] Nr. of Years in Industry : 39 years Nationality : English Marital Status : Married with a son. Date of Birth : 6th October 1960 Languages : Italian and basic German. Summary of Experience I have over 30 years of embedded software experience and consider myself an expert in developing real-time embedded software using the C programming language. When I refer to real-time embedded software, I mean true multi-tasking software on a proper pre-emptive operating system with interfaces to the event driven world of hardware control and user interfaces. I have in-depth knowledge of device drivers, software control of system hardware components and product specific electro-mechanical devices. Additionally, I have a good understanding of hardware at the device level. I also have enthusiasm and expertise in requirements capture and specification. Key to any project is communication and I feel this is something that I am good at both in the written and spoken word – most importantly, I enjoy helping to bring clarity and visibility to a project, a pre- requisite for success. Specialist Skills Real-time, multi-tasking operating systems and device drivers for embedded products. Software development, firmware and 'bare metal' programming. SoCs and ASICs. Software architecture, technical auditing, project management of full product lifestyle, SW porting and reverse/re-engineering. Excellent communicator and documentation skills.
    [Show full text]
  • Intel80386ex Emulator/Analyzer Installation/Service
    Installation/Service/Terminal Interface Guide Intel80386EX Emulator/Analyzer (HP 64789B) Notice Hewlett-Packard makes no warranty of any kind with regard to this material, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. Hewlett-Packard shall not be liable for errors contained herein or for incidental or consequential damages in connection with the furnishing, performance, or use of this material. Hewlett-Packard assumes no responsibility for the use or reliability of its software on equipment that is not furnished by Hewlett-Packard. © Copyright 1995, 1996 Hewlett-Packard Company. This document contains proprietary information, which is protected by copyright. All rights are reserved. No part of this document may be photocopied, reproduced or translated to another language without the prior written consent of Hewlett-Packard Company. The information contained in this document is subject to change without notice. UNIX(R) is a registered trademark in the United States and other countries, licensed exclusively through X/Open Company Limited. Intel386, Intel80386, Intel486, and Intel80486 are U.S. trademarks of Intel Corporation. Hewlett-Packard Company P.O. Box 2197 1900 Garden of the Gods Road Colorado Springs, CO 80901-2197, U.S.A. RESTRICTED RIGHTS LEGEND. Use, duplication, or disclosure by the U.S. Government is subject to restrictions set forth in subparagraph (C) (1) (ii) of the Rights in Technical Data and Computer Software Clause at DFARS 252.227-7013. Hewlett-Packard Company, 3000 Hanover Street, Palo Alto, CA 94304 U.S.A. Rights for non-DOD U.S. Government Departments and Agencies are as set forth in FAR 52.227-19(c)(1,2).
    [Show full text]
  • 4. Instruction Tables Lists of Instruction Latencies, Throughputs and Micro-Operation Breakdowns for Intel, AMD and VIA Cpus
    Introduction 4. Instruction tables Lists of instruction latencies, throughputs and micro-operation breakdowns for Intel, AMD and VIA CPUs By Agner Fog. Technical University of Denmark. Copyright © 1996 – 2016. Last updated 2016-01-09. Introduction This is the fourth in a series of five manuals: 1. Optimizing software in C++: An optimization guide for Windows, Linux and Mac platforms. 2. Optimizing subroutines in assembly language: An optimization guide for x86 platforms. 3. The microarchitecture of Intel, AMD and VIA CPUs: An optimization guide for assembly programmers and compiler makers. 4. Instruction tables: Lists of instruction latencies, throughputs and micro-operation breakdowns for Intel, AMD and VIA CPUs. 5. Calling conventions for different C++ compilers and operating systems. The latest versions of these manuals are always available from www.agner.org/optimize. Copyright conditions are listed below. The present manual contains tables of instruction latencies, throughputs and micro-operation breakdown and other tables for x86 family microprocessors from Intel, AMD and VIA. The figures in the instruction tables represent the results of my measurements rather than the offi- cial values published by microprocessor vendors. Some values in my tables are higher or lower than the values published elsewhere. The discrepancies can be explained by the following factors: ● My figures are experimental values while figures published by microprocessor vendors may be based on theory or simulations. ● My figures are obtained with a particular test method under particular conditions. It is possible that different values can be obtained under other conditions. ● Some latencies are difficult or impossible to measure accurately, especially for memory access and type conversions that cannot be chained.
    [Show full text]
  • ~ ARTISAN® with Experienced Engineers and Technicians on Staff
    Full-service, independent repair center -~ ARTISAN® with experienced engineers and technicians on staff. TECHNOLOGY GROUP ~I We buy your excess, underutilized, and idle equipment along with credit for buybacks and trade-ins. Custom engineering Your definitive source so your equipment works exactly as you specify. for quality pre-owned • Critical and expedited services • Leasing / Rentals/ Demos equipment. • In stock/ Ready-to-ship • !TAR-certified secure asset solutions Expert team I Trust guarantee I 100% satisfaction Artisan Technology Group (217) 352-9330 | [email protected] | artisantg.com All trademarks, brand names, and brands appearing herein are the property o f their respective owners. Find the Honeywell / BendixKing 200-08825-0000 at our website: Click HERE MAINTENANCE MANUAL KLN 94 GPS NAVIGATION SYSTEM MANUAL NUMBER 006-15599-0000 REVISION 0 SEPTEMBER, 2000 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com MAINTENANCE MANUAL KLN 94 GPS NAVIGATION SYSTEM Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com The binder(s) required to hold this publication(s) are available at an additional cost and may be ordered from: Honeywell One Technology Center 23500 West 105th Street Olathe, Kansas, 66061 Telephone 1-800-757-8999 Orders must specify part number, description, and the quantity. Use the following list to complete the order PART NUMBER DESCRIPTION 006-03140-0001 (1) inch Binder. 006-03140-0002 (1.5) inch Binder. 006-03140-0003 (2) inch Binder. 006-03140-0004 (3) inch Binder. 006-03140-0005 (4) inch Post Binder. WARNING Prior to the export of this document, review for export license requirement is needed.
    [Show full text]
  • Intel80386ex Emulator/Analyzer Installation/Service/Terminal
    About this Manual We’ve added this manual to the Agilent website in an effort to help you support your product. This manual is the best copy we could find; it may be incomplete or contain dated information. If we find a more recent copy in the future, we will add it to the Agilent website. Support for Your Product Agilent no longer sells or supports this product. Our service centers may be able to perform calibration if no repair parts are needed, but no other support from Agilent is available. You will find any other available product information on the Agilent Test & Measurement website, www.tm.agilent.com. HP References in this Manual This manual may contain references to HP or Hewlett-Packard. Please note that Hewlett-Packard's former test and measurement, semiconductor products and chemical analysis businesses are now part of Agilent Technologies. We have made no changes to this manual copy. In other documentation, to reduce potential confusion, the only change to product numbers and names has been in the company name prefix: where a product number/name was HP XXXX the current name/number is now Agilent XXXX. For example, model number HP8648A is now model number Agilent 8648A. Installation/Service/Terminal Interface Guide Intel80386EX Emulator/Analyzer (HP 64789B) Notice Hewlett-Packard makes no warranty of any kind with regard to this material, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. Hewlett-Packard shall not be liable for errors contained herein or for incidental or consequential damages in connection with the furnishing, performance, or use of this material.
    [Show full text]
  • Random and Exhaustive Testing of Instruction Parsers
    Random and Exhaustive Testing of Instruction Parsers Nathan Jay Paradyn Project Scalable Tools Workshop Granlibakken, California August 2016 Motivation Lots of tools parse binaries GNU Instruction Parser Testing 2 Motivation Parsers rely on a disassembly step: Converting object code into a higher-level language with semantic information Hex Assembly 00: 55 push %rbp 01: 48 89 e5 mov %rsp, %rbp 04: 89 7d fc mov %edi, -0x4(%rbp) 07: 8b 45 fc mov –x4(%rbp), %eax 0a: 83 c0 0a add $0xa, %eax 0d: 0f af 45 fc imul –x04(%rpb), %eax 11: 5d pop %rbp 12: c3 retq Instruction Parser Testing 3 Motivation Size field Operation Converting object code to assembly is Immediate easy for a single format, like this from Source Register Dest. Register ARMv8: Condition Fixed Value Compare and branch (immediate) No single format is difficult to decode. Just extract the fields and translate binary to assembly for each field. Instruction Parser Testing 4 Motivation Size field Operation Unfortunately, the format varies between Immediate instructions. Source Register Dest. Register Condition Fixed Value Compare and branch (immediate) Test and branch (immediate) Conditional branch (immediate) Instruction Parser Testing 5 Motivation Size field Operation And there are a lot of formats: Immediate Source Register Dest. Register Condition Fixed Value Instruction Parser Testing 6 Motivation These formats only partially cover: o load/store o branching The manual specifies more than 5 times as many different, general formats. ARM can vary between implementations: Apple, Samsung, AMD, Nvidia, Broadcom, Applied Micro, Huawei, Cavium… Instruction Parser Testing 7 Motivation x86 has other challenges with variable length instructions.
    [Show full text]
  • Jeffrey R. Stone Wilton Softworks
    Jeffrey R. Stone Wilton Softworks Consulting Software Engineer Specializing in Embedded Real-time, Scientific and Industrial Applications 41 Tremont St. · Wilton, NH 03086 (603) 654-2994 [email protected] Member: Consultants' Consortium ____________________________________________________ Summary of Experience Technologies: Ion Mobility Spectrometry AWK Embedded Real-Time Electro-Medical Devices FORTRAN and variants Systems FDA Good Development- BASIC Event-driven Systems Procedures Guidelines Most assembly languages Multitasking Systems Model-Based Software- Data Acquisition Engineering Hardware: Digital Filtering IBM PCs and compatibles Neural Networks Operating Systems: Intel 80x86 family Automated Measurement AT&T Unix System-V Analog Devices ADMC- Speech Synthesis MS Windows XP, 2000, 300 DSP Laser Ablation NT, 95, 3.1, MS-DOS NSC-32000 Sonar DEC OS/8, RT-11, RSX- Sun 50 work-station Gas Chromatography 11/M,M+, RSTS/E, Motorola MC68000 (NCR Capillary Electrophoresis VAX/VMS, ULTRIX Tower) Pneumatic Controls DGC RTOS, RDOS DEC PDP /7, /8, /9, /11, Thin-film Fabrication & Kadak AMX Micro-VAX-II Testing Phar Lap ETS DGC Nova, Nova 1200 DNA- and Peptide- AVR micro-controllers Synthesis Languages: C, C++, MS Visual C++ ____________________________________ Consulting Experience January 1975 - Present: Independent software consultant on projects including the following: Monadnock Art X Tech, Peterborough, NH, 8/15 – present Conduct classes/workshops for hobbyists in use & programming of Arduino/AVR-based monitoring and control devices for home automation. Select & purchase hardware components. Design, write, prototype hardware software, and lesson-plans for class-work. (AVR, C++, Thermal measurement, Internet connectivity, external device control, ArduinoIDE) Wilton Softworks, Wilton, NH, 4/11 – present Software and hardware development for AVR-based monitoring and control devices.
    [Show full text]
  • Hardware Is the New Software
    Hardware is the new software Andrew Baumann, Microsoft Research Abstract 10,000 2.5 2 Moore’s Law may be slowing, but, perhaps as a result, 1,000 other measures of processor complexity are only acceler- 1.5 ating. In recent years, Intel’s architects have turned to an 100 alphabet soup of instruction set extensions such as MPX, 1 SGX, MPK, and CET as a way to sell CPUs through new 10 (millions) Words security features. Unlike prior extensions, which mostly (millions) Transistors CPU transistor count 0.5 focused on accelerating user-mode data processing, these Words in architecture manual new features exhibit complex interactions and give system 1 0 designers plenty to think about. 1999 2003 2007 2011 2015 This calls for a rethink of how we approach the instruc- tion set. In this paper we highlight some of the challenges Figure 1: Complexity growth of Intel x86 CPUs and ISA arising from recent security-focused extensions, and spec- ulate about the longer-term implications. complex interactions with other extensions and prior ar- chitectural features. 1 Introduction We take a detailed look at two of the most complex re- cent extensions: software guard extensions (SGX, x3) and An instruction set architecture (ISA) is the key interface control-flow enforcement technology (CET, x4), before between the lowest-levels of software and the CPU. The deriving some implications for systems developers and re- x86 ISA is a complex but enduring set of semantics for in- searchers (x5). We argue that these extensions are now structions, registers, memory, and core devices that must approaching software-like levels of complexity, yet carry be respected by CPUs, emulators and virtual machines, all the attendant drawbacks of a hardware implementation and all the software that runs on top.
    [Show full text]
  • 4. Instruction Tables Lists of Instruction Latencies, Throughputs and Micro-Operation Breakdowns for Intel, AMD, and VIA Cpus
    Introduction 4. Instruction tables Lists of instruction latencies, throughputs and micro-operation breakdowns for Intel, AMD, and VIA CPUs By Agner Fog. Technical University of Denmark. Copyright © 1996 – 2021. Last updated 2021-08-17. Introduction This is the fourth in a series of five manuals: 1. Optimizing software in C++: An optimization guide for Windows, Linux, and Mac platforms. 2. Optimizing subroutines in assembly language: An optimization guide for x86 platforms. 3. The microarchitecture of Intel, AMD, and VIA CPUs: An optimization guide for assembly programmers and compiler makers. 4. Instruction tables: Lists of instruction latencies, throughputs and micro-operation breakdowns for Intel, AMD, and VIA CPUs. 5. Calling conventions for different C++ compilers and operating systems. The latest versions of these manuals are always available from www.agner.org/optimize. Copyright conditions are listed below. The present manual contains tables of instruction latencies, throughputs and micro-operation breakdown and other tables for x86 family microprocessors from Intel, AMD, and VIA. The figures in the instruction tables represent the results of my measurements rather than the offi- cial values published by microprocessor vendors. Some values in my tables are higher or lower than the values published elsewhere. The discrepancies can be explained by the following factors: ● My figures are experimental values while figures published by microprocessor vendors may be based on theory or simulations. ● My figures are obtained with a particular test method under particular conditions. It is possible that different values can be obtained under other conditions. ● Some latencies are difficult or impossible to measure accurately, especially for memory access and type conversions that cannot be chained.
    [Show full text]
  • A Study on the Impact of Instruction Set Architectures on Processor's
    Western Michigan University ScholarWorks at WMU Master's Theses Graduate College 8-2017 A Study on the Impact of Instruction Set Architectures on Processor’s Performance Ayaz Akram Follow this and additional works at: https://scholarworks.wmich.edu/masters_theses Part of the Electrical and Computer Engineering Commons Recommended Citation Akram, Ayaz, "A Study on the Impact of Instruction Set Architectures on Processor’s Performance" (2017). Master's Theses. 1519. https://scholarworks.wmich.edu/masters_theses/1519 This Masters Thesis-Open Access is brought to you for free and open access by the Graduate College at ScholarWorks at WMU. It has been accepted for inclusion in Master's Theses by an authorized administrator of ScholarWorks at WMU. For more information, please contact [email protected]. A Study on the Impact of Instruction Set Architectures on Processor’s Performance by Ayaz Akram A thesis submitted to the Graduate College in partial fulfillment of the requirements for the degree ofMaster of Science in Emgineering Electrical and Computer Engineering Western Michigan University August 2017 Thesis Commitee: Dr. Lina Sawalha, Chair Dr. Janos Grantner Dr. Steven Carr A Study on the Impact of Instruction Set Architectures on Processor’s Performance Ayaz Akram, M.S.E. Western Michigan University, 2017 The recent advances in different instruction set architectures (ISAs) and the way those ISAs are implemented have revived the debate on the role of ISAs in overall performance of a processor. Many people in the computer architecture community believe that with current compiler and microarchitecture advances, the choice of ISA does not remain a decisive matter anymore.
    [Show full text]