Computer Arduino UNO R3

Total Page:16

File Type:pdf, Size:1020Kb

Computer Arduino UNO R3 Getting Started with the Arduino What is an Arduino? Arduino is a family of PC board-based-computing systems built around a microcontroller (microprocessor if you wish). Currently, the most popular Arduinos are the UNO, Leonardo, MEGA, NANO, Due, and LilyPad. https://www.arduino.cc/en/Main/Products The primary differences between configurations include such features as operating voltage, number of input/output pins, on-board memory, form factor, and other subtleties. We will be using on of the most popular Arduinos' the UNO R3 (Revision 3) based on the Atmel ATmega328 microprocessor chip. Arduino UNO R3 Image https://www.arduino.cc/en/Main/ArduinoBoardUno What is a microcontroller? A microcontroller is computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals. ATmega328 Image http://www.atmel.com/devices/atmega328.aspx What is a computer? In it simplest form, a computer consists of Inputs, Processing, and Outputs. The processing system consists of Storage (Memory), Central Processing Unit (CPU) including a System Clock The CPU general consists of a Control Unit and a Arithmetic Logic Unit. Computer Block Diagram Computer Block Diagram (Expanded) What is a Central Processing Unit (CPU)? The processor core or Central Processing Unit (CPU) is the electronic circuitry that carries out the instructions of a computer program by performing basic arithmetic including AND and OR, logical control (branching), and input/output (I/O) operations. Internally the CPU has many different sub-components that perform each of the above steps, and generally they can all happen independently of each other. This is analogous to a physical production line, where there are many stations where each step has a particular task to perform. Once done it can pass the results to the next station and take a new input to work on. Accordingly, principal components of a CPU includes the Arithmetic Logic Unit (ALU) that performs arithmetic and logic operations, Processor Registers that supply operands to the ALU and store the results of ALU operations, and a Control Unit (CU) that fetches instructions from memory and "executes" them by directing the coordinated operations of the ALU, registers and other components. Clock Speed, Cycles per Second, MIPS , FLOPS The speed of the computer, given in Megahertz or Gigahertz (millions or thousands of millions cycles per second). This is called the clock speed since it is the speed that an internal clock within the computer pulses. The pulses are used within the processor to keep it internally synchronized. On each tick or pulse another operation can be started; think of the clock like the person beating the drum to keep the rower's oars in sync. MIPS Machine Instructions per Seconds FLOPS Floating Point Operations per Second Machine Instructions The CPU executes instructions that are read from memory. There are two categories of instructions: 1. Those that load values from memory into registers and store values from registers to memory. 2. Those that operate on values stored in registers. For example adding, subtracting, multiplying, or dividing the values in two registers, performing bitwise operations (AND, OR, XOR, etc); or performing other mathematical operations (square root, sin, cos, tan, etc). Branching Apart from loading or storing, the other important operation of a CPU is branching. Internally, the CPU keeps a record of the next instruction to be executed in the instruction pointer. Usually, the instruction pointer is incremented to point to the next instruction sequentially; the branch instruction will usually check if a specific register is zero or if a flag is set and, if so, will modify the pointer to a different address. Thus the next instruction to execute will be from a different part of program; this is how loops and decision statements work. Control Unit (Fetch, Decode, Execute, Store) A single instruction consists of a particular cycle of events: fetching, decoding, executing and storing. For example, to do the add instruction the CPU must: Fetch - get the instruction from memory into the processor. Decode - internally decode what it has to do (in this case add). Execute - take the values from the registers, actually add them together. Store - store the result back into another register. Comparing an Arduino to a Computer Computer Power Supply Clock Central Processing Unit Arithmetic Logic Unit Inputs Control Unit Outputs Keyboard Display Mouse Storage (Memory) Printer Touch Pad Plotter Touch Screen 3D Printer Microphone Audio / Video External Storage. External Storage Arduino UNO R3 Power Supply (Voltage Regulator), USB-UART, Clock (16 MHz), CPU (Atmel ATmega 328) ATmega328 Memory: 32K Flash (Program), 2K RAM (Variables), 1K EEPROM (Data) Input/Output: 14 Digital & 6 Analog, Interrupts, USB, SPI, I2C, TWI Inputs (Sensor Voltages): Audio, Light, IR, UV, PIR, Motion, Temperature, Humidity, Pressure, Chemical Outputs: Relays, Actuators, Motors, Visual Displays (LEDs & LCDs), Audio, SD Chip, Data Logger Arduino Microcontroller Memory System Timer System Port System Serial Communications System Interrupt System Analog-to-Digital Converter (ADC) Arduino UNO R3 ATmega328 ATmega 328 Memory System Port System Serial Communications ADC 32K Programmable Flash 14 Digital I/O Pins Serial USART 6 Channel 10-bit 2K RAM 6 Analog Input Pins SPI 1K Addressable EEPROM TWI Timer System Interrupt System Two 8-bit Timers 26 total Interrupts One 16-bit Timer 2 External Pin Interrupts Six PWM Channels Interfacing with the Arduino Getting Started with the Arduino (Input/Output Pin Configuration) Arduino UNO R3 ATmega 328 ATmega 328 Memory System Port System Serial Communications ADC 32K Programmable Flash 14 Digital I/O Pins Serial USART 6 Channel 10-bit 2K RAM 6 Analog Input Pins SPI 1K Addressable EEPROM TWI Timer System Interrupt System Two 8-bit Timers 26 total Interrupts One 16-bit Timer 2 External Pin Interrupts Six PWM Channels Power Supply (Voltage Regulator), USB-UART, Clock (16 MHz), CPU (Atmel ATmega 328) Atmel328 Memory: 32K Flash (Program), 2K RAM (Variables), 1K EEPROM (Data) Input/Output: 14 Digital & 6 Analog, Interrupts, USB, SPI, I2C, TWI Inputs (Sensor Voltages): Audio, Light, IR, UV, PIR, Motion, Temperature, Humidity, Pressure, Chemical Outputs: Relays, Actuators, Motors, Visual Displays (LEDs & LCDs), Audio, SD Chip, Data Logger Arduino Input and Output 14 Digital I/O Pins Each of the 14 digital pins on the UNO can be used as an input or output, using pinMode( ), digitalWrite( ), and digitalRead( ) functions. They operate at 5 volts. Each pin can provide or receive a maximum of 40 mA and has an internal pull-up resistor (disconnected by default) of 20-50 kOhms. In addition, some pins have specialized functions: Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL serial data. These pins are connected to the corresponding pins of the ATmega8U2 USB-to-TTL Serial chip. External Interrupts: 2 and 3. These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value. See the attachInterrupt( ) function for details. PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output with the analogWrite( ) function. SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). These pins support SPI communication using the SPI library. LED: 13. There is a built-in LED connected to digital pin 13. When the pin is HIGH value, the LED is on, when the pin is LOW, it's off. 6 Analog I/O Pins The UNO has 6 analog inputs, labeled A0 through A5, each of which provide 10 bits of resolution (i.e. 1024 different values). By default they measure from ground to 5 volts, though is it possible to change the upper end of their range using the AREF pin and the analogReference( ) function. Additionally, some pins have specialized functionality: TWI: A4 or SDA pin and A5 or SCL pin. Support TWI communication using the Wire library. Power Pins The power pins are as follows: Vin The input voltage to the Arduino board when it's using an external power source (as opposed to 5 volts from the USB connection or other regulated power source). You can supply voltage through this pin, or, if supplying voltage via the power jack, access it through this pin. 5V This pin outputs a regulated 5V from the regulator on the board. The board can be supplied with power either from the DC power jack (7 - 12V), the USB connector (5V), or the Vin pin of the board (7-12V). Supplying voltage via the 5V or 3.3V pins bypasses the regulator. 3.3V volt supply generated by the on-board regulator. Maximum current draw is 50 mA. GND Ground pins. IOREF. This pin on the Arduino board provides the voltage reference with which the microcontroller operates. A properly configured shield can read the IOREF pin voltage and select the appropriate power source or enable voltage translators on the outputs for working with the 5V or 3.3V. AREF Reference voltage for the analog inputs. Used with analogReference( ). Reset Bring this line LOW to reset the microcontroller. Typically used to add a reset button to shields which block the one on the board. .
Recommended publications
  • The Central Processing Unit(CPU). the Brain of Any Computer System Is the CPU
    Computer Fundamentals 1'stage Lec. (8 ) College of Computer Technology Dept.Information Networks The central processing unit(CPU). The brain of any computer system is the CPU. It controls the functioning of the other units and process the data. The CPU is sometimes called the processor, or in the personal computer field called “microprocessor”. It is a single integrated circuit that contains all the electronics needed to execute a program. The processor calculates (add, multiplies and so on), performs logical operations (compares numbers and make decisions), and controls the transfer of data among devices. The processor acts as the controller of all actions or services provided by the system. Processor actions are synchronized to its clock input. A clock signal consists of clock cycles. The time to complete a clock cycle is called the clock period. Normally, we use the clock frequency, which is the inverse of the clock period, to specify the clock. The clock frequency is measured in Hertz, which represents one cycle/second. Hertz is abbreviated as Hz. Usually, we use mega Hertz (MHz) and giga Hertz (GHz) as in 1.8 GHz Pentium. The processor can be thought of as executing the following cycle forever: 1. Fetch an instruction from the memory, 2. Decode the instruction (i.e., determine the instruction type), 3. Execute the instruction (i.e., perform the action specified by the instruction). Execution of an instruction involves fetching any required operands, performing the specified operation, and writing the results back. This process is often referred to as the fetch- execute cycle, or simply the execution cycle.
    [Show full text]
  • Arduino Serial Communication Protocol
    Arduino Serial Communication Protocol conjunctlyCankered Leifafter never Michal overraking Balkanising so mixedly,immeasurably quite flipping.or mislike Hamlin any codes sailplane irresolutely. enthusiastically? Undiversified Kennedy redates no cavatinas escapes Once you want to arduino serial communication protocol and All computers trying out one simple method is common language that represents the serial devices by step is this hardware port on the for. Metal oxide field is also means use serial protocol and smtp are commenting using only of the expected baud rate, decodes the wiring and learn! How serial communication peripheral devices communicate are dozens of bytes that are capable of the new. One of tartar for data timing requirements you should appear. Ttl camera this time, that can be acknowledged. How far and computer system communicate with. Due boards have usb converter or create your raspberry pi or xbee radio receiver can imagine sending repeatedly until a flexible. Bu çalışmamızı gerçekleştirirken bağlı bulunduğumuz kykwifi nin standartları gereği çalışmamıza pek uygun olmamaktadır çünkü wifi. But using an arduino ide serial port on board may have. Arduino platform of control a table above shows that you learned how long distance between both. Uart must operate on? Perfect communication protocol into serial hardware serial. Well known options which we have. Debug messages using arduino via a raspberry pi board allowing you can read and modules from packets. In different size calculator with most notably modbus variant that need. Jetson nano wifi shield my arduino boards to do we will initiate a protocol is a serial protocols to refer to a checksum calculation, initiate a mouse.
    [Show full text]
  • The Intel Microprocessors: Architecture, Programming and Interfacing Introduction to the Microprocessor and Computer
    Microprocessors (0630371) Fall 2010/2011 – Lecture Notes # 1 The Intel Microprocessors: Architecture, Programming and Interfacing Introduction to the Microprocessor and computer Outline of the Lecture Evolution of programming languages. Microcomputer Architecture. Instruction Execution Cycle. Evolution of programming languages: Machine language - the programmer had to remember the machine codes for various operations, and had to remember the locations of the data in the main memory like: 0101 0011 0111… Assembly Language - an instruction is an easy –to- remember form called a mnemonic code . Example: Assembly Language Machine Language Load 100100 ADD 100101 SUB 100011 We need a program called an assembler that translates the assembly language instructions into machine language. High-level languages Fortran, Cobol, Pascal, C++, C# and java. We need a compiler to translate instructions written in high-level languages into machine code. Microprocessor-based system (Micro computer) Architecture Data Bus, I/O bus Memory Storage I/O I/O Registers Unit Device Device Central Processing Unit #1 #2 (CPU ) ALU CU Clock Control Unit Address Bus The figure shows the main components of a microprocessor-based system: CPU- Central Processing Unit , where calculations and logic operations are done. CPU contains registers , a high-frequency clock , a control unit ( CU ) and an arithmetic logic unit ( ALU ). o Clock : synchronizes the internal operations of the CPU with other system components using clock pulsing at a constant rate (the basic unit of time for machine instructions is a machine cycle or clock cycle) One cycle A machine instruction requires at least one clock cycle some instruction require 50 clocks. o Control Unit (CU) - generate the needed control signals to coordinate the sequencing of steps involved in executing machine instructions: (fetches data and instructions and decodes addresses for the ALU).
    [Show full text]
  • Computer Organization & Architecture Eie
    COMPUTER ORGANIZATION & ARCHITECTURE EIE 411 Course Lecturer: Engr Banji Adedayo. Reg COREN. The characteristics of different computers vary considerably from category to category. Computers for data processing activities have different features than those with scientific features. Even computers configured within the same application area have variations in design. Computer architecture is the science of integrating those components to achieve a level of functionality and performance. It is logical organization or designs of the hardware that make up the computer system. The internal organization of a digital system is defined by the sequence of micro operations it performs on the data stored in its registers. The internal structure of a MICRO-PROCESSOR is called its architecture and includes the number lay out and functionality of registers, memory cell, decoders, controllers and clocks. HISTORY OF COMPUTER HARDWARE The first use of the word ‘Computer’ was recorded in 1613, referring to a person who carried out calculation or computation. A brief History: Computer as we all know 2day had its beginning with 19th century English Mathematics Professor named Chales Babage. He designed the analytical engine and it was this design that the basic frame work of the computer of today are based on. 1st Generation 1937-1946 The first electronic digital computer was built by Dr John V. Atanasoff & Berry Cliford (ABC). In 1943 an electronic computer named colossus was built for military. 1946 – The first general purpose digital computer- the Electronic Numerical Integrator and computer (ENIAC) was built. This computer weighed 30 tons and had 18,000 vacuum tubes which were used for processing.
    [Show full text]
  • Lecture Notes
    Lecture #4-5: Computer Hardware (Overview and CPUs) CS106E Spring 2018, Young In these lectures, we begin our three-lecture exploration of Computer Hardware. We start by looking at the different types of computer components and how they interact during basic computer operations. Next, we focus specifically on the CPU (Central Processing Unit). We take a look at the Machine Language of the CPU and discover it’s really quite primitive. We explore how Compilers and Interpreters allow us to go from the High-Level Languages we are used to programming to the Low-Level machine language actually used by the CPU. Most modern CPUs are multicore. We take a look at when multicore provides big advantages and when it doesn’t. We also take a short look at Graphics Processing Units (GPUs) and what they might be used for. We end by taking a look at Reduced Instruction Set Computing (RISC) and Complex Instruction Set Computing (CISC). Stanford President John Hennessy won the Turing Award (Computer Science’s equivalent of the Nobel Prize) for his work on RISC computing. Hardware and Software: Hardware refers to the physical components of a computer. Software refers to the programs or instructions that run on the physical computer. - We can entirely change the software on a computer, without changing the hardware and it will transform how the computer works. I can take an Apple MacBook for example, remove the Apple Software and install Microsoft Windows, and I now have a Window’s computer. - In the next two lectures we will focus entirely on Hardware.
    [Show full text]
  • Unit 8 : Microprocessor Architecture
    Unit 8 : Microprocessor Architecture Lesson 1 : Microcomputer Structure 1.1. Learning Objectives On completion of this lesson you will be able to : ♦ draw the block diagram of a simple computer ♦ understand the function of different units of a microcomputer ♦ learn the basic operation of microcomputer bus system. 1.2. Digital Computer A digital computer is a multipurpose, programmable machine that reads A digital computer is a binary instructions from its memory, accepts binary data as input and multipurpose, programmable processes data according to those instructions, and provides results as machine. output. 1.3. Basic Computer System Organization Every computer contains five essential parts or units. They are Basic computer system organization. i. the arithmetic logic unit (ALU) ii. the control unit iii. the memory unit iv. the input unit v. the output unit. 1.3.1. The Arithmetic and Logic Unit (ALU) The arithmetic and logic unit (ALU) is that part of the computer that The arithmetic and logic actually performs arithmetic and logical operations on data. All other unit (ALU) is that part of elements of the computer system - control unit, register, memory, I/O - the computer that actually are there mainly to bring data into the ALU to process and then to take performs arithmetic and the results back out. logical operations on data. An arithmetic and logic unit and, indeed, all electronic components in the computer are based on the use of simple digital logic devices that can store binary digits and perform simple Boolean logic operations. Data are presented to the ALU in registers. These registers are temporary storage locations within the CPU that are connected by signal paths of the ALU.
    [Show full text]
  • A Review on Role of Arduino Uno Used in Dual Axis Solar Tracker Rushikesh S.Rakhonde, Pranay R.Lakde, Suraj K.Badwaik, Akshay B.Ronghe, Dipak P
    Rushikesh S. Rakhonde, 2021, 9:1 ISSN (Online): 2348-4098 ISSN (Print): 2395-4752 A Review on Role of Arduino Uno Used in Dual Axis Solar Tracker Rushikesh S.Rakhonde, Pranay R.Lakde, Suraj K.Badwaik, Akshay B.Ronghe, Dipak P. Sonule, Asst. Prof. C. J. Shende Department of Mechanical Engg, DESCOET, Dhamangaon (Rly), Maharashtra, India Abstract- The Arduino Uno is an open-source microcontroller board based on the Microchip ATmega328P microcontroller and developed by Arduino.cc. The board is equipped with sets of digital and analog input/output (I/O) pins that may be interfaced to various expansion boards (shields) and other circuits. The board has 14 digital I/O pins (six capable of PWM output), 6 analog I/O pins, and is programmable with the Arduino IDE (Integrated Development Environment), via a type B USB cable. It can be powered by the USB cable or by an external 9-voltThe battery,Arduino thoughproject itwas accepts started voltages at the betweenInteraction 7 and 20 volts. It is similar to the Arduino Nano and Leonardo. The word "uno" means "one" in Italian and was chosen to mark the initial release of Arduino Software. The Uno board is the first in a series of USB- based Arduino boards; it and version 1.0 of the Arduino IDE were the reference versions of Arduino, which have now evolved to newer releases. The ATmega328 on the board comes pre programmed with a boot loader that allows uploading new code to it without the use of an external hardware programmer. Keywords: - Arduino, Expansion Board, USB Cable, Arduino IDE, Microcontroller Board.
    [Show full text]
  • Arduino Uno - R3 (Original - Made in Italy)
    Arduino Uno - R3 (Original - Made in Italy) The UNO is the best board to get started with electronics and coding. If this is your first experience tinkering with the platform, the UNO is the most robust board you can start playing with. The UNO is the most used and documented board of the whole Arduino family. Arduino Uno is a microcontroller board based on the ATmega328P (datasheet). It has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz quartz crystal, a USB connection, a power jack, an ICSP header and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started.. You can tinker with your UNO without worring too much about doing something wrong, worst case scenario you can replace the chip for a few dollars and start over again. "Uno" means one in Italian and was chosen to mark the release of Arduino Software (IDE) 1.0. The Uno board and version 1.0 of Arduino Software (IDE) were the reference versions of Arduino, now evolved to newer releases. The Uno board is the first in a series of USB Arduino boards, and the reference model for the Arduino platform; for an extensive list of current, past or outdated boards see the Arduino index of boards. Technical Specifications: Microcontroller ATmega328P Operating Voltage 5V Input Voltage (recommended) 7-12V Input Voltage (limit) 6-20V Digital I/O Pins 14 (of which 6 provide PWM output) PWM Digital I/O Pins 6 Analog Input Pins 6 DC Current per I/O Pin 20 mA DC Current for 3.3V Pin 50 mA Flash Memory 32 KB (ATmega328P) of which 0.5 KB used by bootloader SRAM 2 KB (ATmega328P) EEPROM 1 KB (ATmega328P) Clock Speed 16 MHz LED_BUILTIN 13 Length 68.6 mm Width 53.4 mm Weight 25 g Schematic : Programming The Arduino Uno can be programmed with the (Arduino Software (IDE)).
    [Show full text]
  • Project Documentation
    Project Documentation Project Title: e-Glove Team Members: Harshit Rathore, Shubham Agrawal & Elle Atma Vidya Prakash Team Mentors: Rohit Agarwal & Divya Prakash Basic aim: To make a glove embedded with various sensors to detect hand and finger gestures, and implement those in many things, like playing games, giving presentations and many more. Motivation: We were having a look at previous year projects done under the electronics club, we saw many game controllers. So we thought of a game controller that can work for all the latest games, is full featured, and gaming looks more realistic using that. Inspired by things like Microsoft© Kinect™, Sony© Play Station™ motion controller, and many more such controllers available in the market, we came up with this idea. Theory: Sensors 1. Accelerometer: An accelerometer is a device that measures acceleration. When it is kept horizontal at rest, it measures 9.8 N/Kg downward. Whenever there is a tilt, a small component is left at the downward face, which can be detected. 2. Flex Sensor: The flex sensor is basically a variable resistor that reacts to bends. It changes its resistance when flexed so we can measure that change. The bend is only detected in one direction. TO read the data from the sensor, we need a fixed resistor (not changing) that we can use for that comparison (We are using a 33K resistor). This is called a voltage divider and divides the 5v between the flex sensor and the resistor. Microcontroller A microcontroller is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals.
    [Show full text]
  • Microcontrollers for IOT Prototyping – Part 2 V
    Microcontrollers for IOT Prototyping – Part 2 V. Oree, EEE Dept, UoM 1 Introduction • The Internet of Things is considered by many to be the 4th Industrial Revolution. • But unlike the first three, it is not a new technology. It is a new way of integrating existing technologies. As a result, it will not require a new kind of engineer. • Instead, to implement IoT, anyone hoping to embed IoT‐enabled capabilities in applications should gain a general understanding of the technologies. • Our intent is not to describe every conceivable aspect of the IoT or its enabling technologies but, rather, to provide an easy reference in your exploration of IoT solutions and plan potential implementations. 2 Introduction INTERNET OF THINGS 3 Sensor Selection Choosing a sensor (for example, a temperature sensor) for an IOT application may seem like a straightforward decision. However, selecting the right sensor involves taking many factors into account: Cost Supplier: How trustworthy is this seller? (Look at reviews from other buyers) Accuracy & Precision Availability: Some components can only be in large quantities. Measurement Range: What ranges will it work for? Power Consumption: Will it work with the power source I have? Sensor Selection Example: Temperature Sensor Texas Instruments LMT84LP Atmel AT30TSE754A‐S8M‐T Sparkfun DS18B20 Texas Instruments LM35DZ Cost: $0.91 Cost: $0.53 Cost: $9.95 Cost: $1.86 Accuracy: +/‐ 0.4°C Accuracy: +/‐ 2°C Accuracy: +/‐ 0.5°C Accuracy: +/‐ 1.5°C Range: ‐50°C to 150°C Range: ‐55°C to 125°C Range: ‐55°C to 125°C Range: 0°C to 100°C Voltage: 1.5V – 5.5V Voltage: 1.7V –5.5V Voltage: 3.0V –5.5V Voltage: 4V – 30V Availability: >10 Availability: >4000 Availability: >5 Availability: >10 5 IoT Development boards • IoT development boards enable makers to prototype their ideas.
    [Show full text]
  • CPU) the CPU Is the Brains of the Computer, and Is Also Known As the Processor (A Single Chip Also Known As Microprocessor)
    Central processing unit (CPU) The CPU is the brains of the computer, and is also known as the processor (a single chip also known as microprocessor). This electronic component interprets and carries out the basic instructions that operate the computer. Cache as a rule holds data waiting to be processed and instructions waiting to be executed. The main parts of the CPU are: control unit arithmetic logic unit (ALU), and registers – also referred as Cache registers The CPU is connected to a circuit board called the motherboard also known as the system board. Click here to see more information on the CPU Let’s look inside the CPU and see what the different components actually do and how they interact Control unit The control unit directs and co-ordinates most of the operations in the computer. It is a bit similar to a traffic officer controlling traffic! It translates instructions received from a program/application and then begins the appropriate action to carry out the instruction. Specifically the control unit: controls how and when input devices send data stores and retrieves data to and from specific locations in memory decodes and executes instructions sends data to other parts of the CPU during operations sends data to output devices on request Arithmetic Logic Unit (ALU): The ALU is the computer’s calculator. It handles all math operations such as: add subtract multiply divide logical decisions - true or false, and/or, greater then, equal to, or less than Registers Registers are special temporary storage areas on the CPU. They are: used to store items during arithmetic, logic or transfer operations.
    [Show full text]
  • Reverse Engineering X86 Processor Microcode
    Reverse Engineering x86 Processor Microcode Philipp Koppe, Benjamin Kollenda, Marc Fyrbiak, Christian Kison, Robert Gawlik, Christof Paar, and Thorsten Holz, Ruhr-University Bochum https://www.usenix.org/conference/usenixsecurity17/technical-sessions/presentation/koppe This paper is included in the Proceedings of the 26th USENIX Security Symposium August 16–18, 2017 • Vancouver, BC, Canada ISBN 978-1-931971-40-9 Open access to the Proceedings of the 26th USENIX Security Symposium is sponsored by USENIX Reverse Engineering x86 Processor Microcode Philipp Koppe, Benjamin Kollenda, Marc Fyrbiak, Christian Kison, Robert Gawlik, Christof Paar, and Thorsten Holz Ruhr-Universitat¨ Bochum Abstract hardware modifications [48]. Dedicated hardware units to counter bugs are imperfect [36, 49] and involve non- Microcode is an abstraction layer on top of the phys- negligible hardware costs [8]. The infamous Pentium fdiv ical components of a CPU and present in most general- bug [62] illustrated a clear economic need for field up- purpose CPUs today. In addition to facilitate complex and dates after deployment in order to turn off defective parts vast instruction sets, it also provides an update mechanism and patch erroneous behavior. Note that the implementa- that allows CPUs to be patched in-place without requiring tion of a modern processor involves millions of lines of any special hardware. While it is well-known that CPUs HDL code [55] and verification of functional correctness are regularly updated with this mechanism, very little is for such processors is still an unsolved problem [4, 29]. known about its inner workings given that microcode and the update mechanism are proprietary and have not been Since the 1970s, x86 processor manufacturers have throughly analyzed yet.
    [Show full text]