CS 2461: Computer Architecture I

Similar documents
CS 5523: Operating Systems

Final Review. Chenyang Lu. CSE 467S Embedded Compu5ng Systems

Processes. Criteria for Comparing Scheduling Algorithms

File Systems: Fundamentals

Operating Systems. Chenyang Lu

Cyber-Physical Systems Scheduling

VLSI Design I; A. Milenkovic 1

The optical memory card is a Write Once media, a written area cannot be overwritten. Information stored on an optical memory card is non-volatile.

CSE 520S Real-Time Systems

Concurrent Programing: Why you should care, deeply. Don Porter Portions courtesy Emmett Witchel

Act means the Municipal Elections Act, 1996, c. 32 as amended;

Ø Project Description. Ø Design Criteria. Ø Design Overview. Ø Design Components. Ø Schedule. Ø Testing Criteria. Background Design Implementation

Last Time. Bit banged SPI I2C LIN Ethernet. u Embedded networks. Ø Characteristics Ø Requirements Ø Simple embedded LANs

Cadac SoundGrid I/O. User Guide

SMS based Voting System

Volume I Appendix A. Table of Contents

Bidding Document For Annual Procurement

Estonian National Electoral Committee. E-Voting System. General Overview

Servilla: Service Provisioning in Wireless Sensor Networks. Chenyang Lu

CS 5523 Operating Systems: Intro to Distributed Systems

SECURITY, ACCURACY, AND RELIABILITY OF TARRANT COUNTY S VOTING SYSTEM

Key Considerations for Implementing Bodies and Oversight Actors

Key Considerations for Oversight Actors

Electronic pollbooks: usability in the polling place

DragonBoard 410c based on Qualcomm Snapdragon 410E processor ADB Over Wi-Fi Application Note

Configuring MST (802.1s)/RSTP (802.1w) on Catalyst Series Switches Running CatOS

Washington Military Department Statement of Work Microsoft Surface Professional Tablet Computer RFP-14-PUR-015

City of Toronto Election Services Internet Voting for Persons with Disabilities Demonstration Script December 2013

COMP 635: WIRELESS & MOBILE COMMUNICATIONS COURSE INTRODUCTION. Jasleen Kaur. Fall 2017

ForeScout Extended Module for McAfee epolicy Orchestrator

IC Chapter 15. Ballot Card and Electronic Voting Systems; Additional Standards and Procedures for Approving System Changes

Comparison Sorts. EECS 2011 Prof. J. Elder - 1 -

Global Conditions (applies to all components):

Installation Instructions HM2085-PLM Strain Gage Input Module

irobot Create Setup with ROS and Implement Odometeric Motion Model Welcome Lab 4 Dr. Ing. Ahmad Kamal Nasir

Smart Voting System using UIDAI

Anoka County Procedural Law Waiver Application Narrative Section A: Background Implementation of the Help America Vote Act of The Help America

Adaptive QoS Control for Real-Time Systems

An Electronic Voting System for a Legislative Assembly

Post-Election Online Interview This is an online survey for reporting your experiences as a pollworker, pollwatcher, or voter.

Additional Case study UK electoral system

CS 5523 Operating Systems: Synchronization in Distributed Systems

ADMISSIBILITY OF COMPUTER EVIDENCE IN TANZANIA

Real-Time Scheduling Single Processor. Chenyang Lu

Philips Lifeline. Ø Chenyang Lu 1

Note concerning the Patentability of Computer-Related Inventions

The Case for implementing a Bio-Metric National ID for Voting and/or to replace the Social Security Card

4th International Industrial Supercomputing Workshop Supercomputing for industry and SMEs in the Netherlands

If your answer to Question 1 is No, please skip to Question 6 below.

Product Description

edriver s Licenses The Convergence of Identity in Society and the future role of the Driver s License.

Law Firm of Naren Thappeta*

Poll Worker Training. For Nebraska Elections

Netvote: A Blockchain Voting Protocol

Supreme Court of Florida

Peregian Springs State School mlearning P 3 BYO ipad Program 2018 Frequently Asked Questions Updated 10 October 2017

Ballot Reconciliation Procedure Guide

PROCEDURES FOR THE USE OF VOTE COUNT TABULATORS

Abstract: We present a modular voting architecture in which vote generation is performed separately from vote casting.

SCHOOLMASTER. Appointment Scheduling. Student Information Systems. Revised - August Schoolmaster is SIF Certified

ARKANSAS SECRETARY OF STATE

ARKANSAS SECRETARY OF STATE. Rules on Vote Centers

Software License Agreement for Beckhoff Software Products

Supreme Court of Florida

United States District Court, E.D. Texas, Marshall Division. BIAX CORPORATION, v. SUN MICROSYSTEMS, INC. No. 2:06-CV-364. July 18, 2008.

Programming in Logic: Prolog

HPCG on Tianhe2. Yutong Lu 1,Chao Yang 2, Yunfei Du 1

Wednesday, January 4, electronic components

Verity Touch Writer. Hart InterCivic Inc.

MPI Forum Procedures Version 3.0. The MPI Forum

CPSC 467b: Cryptography and Computer Security

Kitsap County Auditor s Office

Tender. for. Supply & Installation of Laptops. Indian Institute of Technology Jodhpur

Cyber-Physical Systems Feedback Control

NC General Statutes - Chapter 14 Article 60 1

Elections for everyone. Experiences of people with disabilities at the 8 June 2017 UK Parliamentary general election

General Framework of Electronic Voting and Implementation thereof at National Elections in Estonia

Model Act to Permit Continued Access by Law Enforcement to Wire & Electronic Communications

Supreme Court of Florida

Public Libraries and Access to Justice: #2. The Role of Public Libraries

TinyOS and nesc. Ø TinyOS: OS for wireless sensor networks. Ø nesc: programming language for TinyOS.

Graduate Development Program Engineering. Arrow Electronics July 2018

Systems and methods for conducting jury research and training for estimating punitive damages

Annex 1: Standard Contractual Clauses (processors)

FM Legacy Converter User Guide

Overview of the Design Process. Avoid Bad Design, Use UCD Evidence-based Design Hypothesis testing!

This tutorial also provides a glimpse of various security issues related to biometric systems, and the comparison of various biometric systems.

Frequently Asked Questions Last updated December 7, 2017

Vote Count Tabulators

Electronic Voting Machine Information Sheet

GAO. Statement before the Task Force on Florida-13, Committee on House Administration, House of Representatives

Tender. for. Supply & Installation of Laptops. Indian Institute of Technology Jodhpur

Let the Blogging Begin!

(12) Patent Application Publication (10) Pub. No.: US 2017/ A1

DuPage County Election Commission

Tender No.244/IT/2017/ROOTS Dated: 30/04/2018

Every electronic device used in elections operates and interacts

2143 Vote Count. Input

IceCube Project Monthly Report November 2007

BALLOT BOX CHECKLIST

Transcription:

The von Neumann Model : Computer Architecture I Instructor: Prof. Bhagi Narahari Dept. of Computer Science Course URL: www.seas.gwu.edu/~bhagiweb/cs2461/ Memory MAR MDR Processing Unit Input ALU TEMP Output (keyboard) (monitor) Control Unit PC IR u Memory: holds both data and instructions u Processing Unit: carries out the instructions u Control Unit: sequences and interprets instructions u Input: external information into the memory u Output: produces results for the user I/O: Connecting to Outside World So far, we ve learned how to: Ø compute with values in registers Ø load data from memory to registers Ø store data from registers to memory But where does data in memory come from? Ø wide variety of Input devices And how does data get out of the system so that humans can use it? Ø Wide variety of output devices I/O: Connecting to the Outside World Types of I/O devices characterized by: Ø behavior: input, output, storage Ø input: keyboard, motion detector, network interface Ø output: monitor, printer, network interface Ø storage: disk, CD-ROM Ø data rate: how fast can data be transferred? Ø keyboard: 100 bytes/sec Ø disk: 30 MB/s Ø network: 1 Mb/s - 1 Gb/s We stick to keyboard and display Ø Cover basic concepts of I/O processing Ø Similar solutions used in real processors 1

Interacting with I/O Devices What do we need to know about I/O devices? Only two aspects: Ø Are they ready to process CPU s request? Ø Where to send the data to be processed by I/O device? I/O Devices and Controllers Most I/O devices are not purely digital themselves Ø Electro-mechanical: e.g., keyboard, mouse, disk, motor Ø Analog/digital: e.g., network interface, monitor, speaker, mic all have digital interfaces presented by I/O Controller Ø CPU (digital) talks to controller Ø Not super-interested in controller/device internals for now.. I/O Controller I/O device I/O Controller Interface: Abstraction I/O Controller interface presented as device registers Ø Control/status: may be one register or two Ø Data: may be more than one of these For input: Ø CPU checks status register if input is available Ø Reads input from data register (or waits if no input Graphics Controller Control/Status CPU Output Data Electronics display For output: Ø CPU checks status register to see if it can write (device free) Ø Writes output to data register Device electronics Ø performs actual operation Ø pixels to screen, bits to/from disk, characters from keyboard Programming Interface How are device registers identified? Ø Memory-mapped vs. special instructions How is timing of transfer managed? Ø Asynchronous vs. synchronous Who controls transfer? Ø CPU (polling) vs. device (interrupts) 2

Transfer Timing Synchronous or Asynch. I/O events generally happen much slower than CPU cycles. Synchronous Ø data supplied at a fixed, predictable rate Ø CPU reads/writes every X cycles Asynchronous Ø data rate less predictable Ø CPU must synchronize with device, so that it doesn t miss data or write too quickly Ø How: some protocol is needed TV and Remote? Mail delivery person and you? Mouse and PC? TV and Remote: synchronous Ø TV samples at specific intervals to see if key on remote has been pressed Mail delivery: asynchronous Ø Use mailbox as synchronization mechanism Mouse and PC: synchronous Ø PC samples mouse at specific intervals How are Device Register Reads/Writes Performed? Two options (aren t there always?) I/O instructions Ø Designate opcode(s) for I/O Ø Register and operation encoded in instruction Memory-mapped I/O Ø Assign a memory address to each device register Ø Use conventional loads and stores Ø Hardware intercepts loads/stores to these address Ø No actual memory access performed Ø LC3 (and most other platforms) do this Instructions Memory-Mapped vs. I/O Instructions Ø designate opcode(s) for I/O Ø register and operation encoded in instruction Memory-mapped Ø assign a memory address to each device register Ø use data movement instructions (LD/ST) for control and data transfer 3

LC-3 Simple Implementation: Memory- Mapped Input Memory-mapped I/O (Table A.3) Location I/O Register Function xfe00 Keyboard Status Reg (KBSR) Bit [15] is one when keyboard has received a new character. Address Control Logic determines whether MDR is loaded from Memory or from KBSR/KBDR. xfe02 Keyboard Data Reg (KBDR) Bits [7:0] contain the last character typed on keyboard. If address = xfe00 then KBSR xfe04 Display Status Register (DSR) Bit [15] is one when device ready to display another char on screen. xfe06 Display Data Register (DDR) Character written to bits [7:0] will be displayed on screen. Input from Keyboard Basic Input Routine When a character is typed: Ø It is placed in bits [7:0] of KBDR (bits [15:8] are always zero) Ø the ready bit (KBSR[15]) is set to one Ø keyboard is disabled -- any typed characters will be ignored ready bit 15 8 7 0 15 14 0 When KBDR is read: the keyboard HW KBDR KBSR keyboard data Polling NO new char? YES read character Check if Keyboard ready Keep checking. How? Once ready, it reads from Keyboard into register R0 Ø KBSR[15] is set to zero Ø keyboard is enabled 4

Basic Input Routine Output to Monitor When Monitor is ready to display another character: Ø the ready bit (DSR[15]) is set to one Polling NO new char? YES read character POLL LDI R0, KBSRPtr BRzp POLL LDI R0, KBDRPtr... KBSRPtr.FILL xfe00 KBDRPtr.FILL xfe02 ready bit 15 8 7 0 15 14 0 DDR DSR When data is written to Display Data Register: Ø DSR[15] is set to zero Ø character in DDR[7:0] is displayed Ø any other character data written to DDR is ignored (while DSR[15] is zero) output data Keyboard Echo Routine Some Questions Usually, input character is also printed to screen. Ø User gets feedback on character typed and knows its ok to type the next character. What is the danger of not testing the DSR before writing data to the screen? POLL1 LDI R0, KBSRPtr BRzp POLL1 LDI R0, KBDRPtr POLL2 LDI R1, DSRPtr BRzp POLL2 STI R0, DDRPtr... KBSRPtr.FILL xfe00 KBDRPtr.FILL xfe02 DSRPtr.FILL xfe04 DDRPtr.FILL xfe06 NO NO new char? YES read character screen ready? YES write character What is the danger of not testing the KBSR before reading data from the keyboard? What if the Monitor were a synchronous device, e.g., we know that it will be ready 1 microsecond after character is written. Ø Can we avoid polling? How? Ø What are advantages and disadvantages? 5

Who writes the I/O code? Trap Routines/ Service calls Not a good idea to let programmers write their code to do I/O? Send the request to the system Ø Ø OS will service the request and return control back to user program Eg: Printf System Calls Certain operations require specialized knowledge and protection: Ø Ø specific knowledge of I/O device registers and the sequence of operations needed to use them I/O resources shared among multiple users/programs; a mistake could affect lots of other users! Not every programmer knows (or wants to know) this level of detail Provide service routines or system calls (part of operating system) to safely and conveniently perform low-level, privileged operations System Call - steps User Mode vs OS Mode An example 1. User program invokes system call. 2. Operating system code performs operation. 3. Returns control to user program. User Mode SuperUser Mode Billionaire Playboy Total Badass Philanthropist Engineer 6

System Calls..how how do I get my code to ask the OS for I/O? Ø Call a special subroutine, called a TRAP Ø Also called syscall or callgate Ø We don t simply use a Branch or Function call: Ø not secure enough Ø User can t set privilege bit themselves Ø great temptation to give themselves powers they shouldn t have In the Real World System call/trap Specifics: Ø User can call to a restricted set of function addresses Ø Can upgrade privilege only through these channels This system call mechanism is commonly used in actual systems Ø As an example the BIOS (Basic Input Output System) on many Intel PCs provided precisely this functionality to allow programs to access basic input and output devices, keyboards, displays, timers etc. More modern systems use EFI (Extensible Firmware Interface) which is a more sophisticated version of the same thing. 1. A set of service routines. LC-3 TRAP Mechanism Ø part of operating system -- routines start at arbitrary addresses (convention is that system code is below x3000) Ø up to 256 routines 2. Table of starting addresses. Ø stored at x0000 through x00ff in memory Ø called System Control Block in some architectures 3. TRAP instruction. Ø used by program to transfer control to operating system Ø 8-bit trap vector names one of the 256 service routines 4. A linkage back to the user program. Ø want execution to resume immediately after the TRAP instruction LC3 TRAP Routines and their Assembler Names vector symbol routine x20 GETC read a single character (no echo) x21 OUT output a character to the monitor x22 PUTS write a string to the console x23 IN x25 HALT halt the program print prompt to console, read and echo character from keyboard 7

TRAP Instruction TRAP Trap vector Ø identifies which system call to invoke Ø 8-bit index into table of service routine addresses Ø in LC-3, this table is stored in memory at 0x0000 0x00FF Ø 8-bit trap vector is zero-extended into 16-bit memory address Where to go Ø lookup starting address from table; place in PC Ø Load contents at trap vector address into the PC! How to get back Ø save address of next instruction (current PC) in R7 Ø Last instruction in TRAP program sets PC equal to R7 NOTE: PC has already been incremented during CS instruction 2461 fetch stage. RET (JMP R7) TRAP Mechanism Operation How do we transfer control back to instruction following the TRAP? We saved old PC in R7. Ø JMP R7 gets us back to the user program at the right spot. Ø LC-3 assembly language lets us use RET (return) in place of JMP R7. 1 1. Lookup starting address. Must make sure that service routine does not change R7, or we won t know where to return. 8

TRAP Mechanism Operation TRAP Mechanism Operation 2 1. Lookup starting address. 2. Transfer to service routine. 1. Lookup starting address. 2. Transfer to service routine. 3. Return (JMP R7). 3 Example: Using the TRAP Instruction.ORIG x3000 ; user code TRAP x23 ; input character into R0 ADD R1, R2, R0 ; use R0 ; user code ADD R0, R0, R3 ; load output data into R0 TRAP x21 ; Output to monitor... ;... User program... EXIT TRAP x25 ; halt.end How do actual I/O interactions take place Protocols? Two schemes for interacting with I/O devices What we have seen so far is polling Ø Are we there yet? Are we there yet? Are we there yet? Ø CPU keeps checking status register in a loop Ø Very inefficient, multi-tasking CPU has better things to do Alternative scheme is called interrupts Ø Wake me when we get there. Ø Device sends special signal to CPU when status changes Ø CPU stops current program, saves its state Ø CPU handles interrupt : checks status, moves data Ø CPU resumes stopped program, as if nothing happened!!!!!!!!! 9

How Interrupts work Question Can a service routine call another service routine? CPU in user mode Doing boring user work: partying, etc. etc. Holy Smokes A device is ready for Input or output Better raise the interrupt CPU switches to Superhero/OS mode: Lays a smackdown On the I/O device. When done return to regular life partying like nothing happened If so, is there anything special the calling service routine must do? Ø NO! Saving and Restoring Registers Must save the value of a register if: Ø Its value will be destroyed by service routine, and Ø We will need to use the value after that action. Who saves? Ø caller of service routine? Ø knows what it needs later, but may not know what gets altered by called routine Ø called service routine? Ø knows what it alters, but does not know what will be needed later by calling routine Protecting System space System calls go to specific locations in memory Ø We don t want users overwriting these Ø Write protect these locations Ø Halt a program that tries to enter unauthorized space/memory 10

Operating Systems (OSes) Operating Systems (OSes) First job of an OS: Ø Handle I/O 2 nd job of OS Ø OSes virtualize the hardware for user applications In real systems, only the operating system (OS) does I/O Ø User programs ask OS to perform I/O on their behalf Ø Three reasons for this setup: 1) Abstraction/Standardization Ø I/O device interfaces are nasty, and there are many of them Ø Think of disk interfaces: S-ATA, iscsi, IDE Ø User programs shouldn t have to deal with these interfaces Ø In fact, even OS doesn t have to deal with most of them Ø Most are buried in device drivers 2) Raise the level of abstraction Ø Wrap nasty physical interfaces with nice logical ones Ø Wrap disk layout in file system interface 3) Enforce isolation (usually with help from hardware) Ø Each user program thinks it has the hardware to itself Ø User programs unaware of other programs or (mostly) OS Ø Makes programs much easier to write Ø Makes the whole system more stable and secure Ø A can t mess with B if it doesn t even know B exists Implementing an OS: Privilege OS isolates user programs from each other and itself Ø Requires restricted access to certain parts of hardware to do this Ø Restricted access should be enforced by hardware Ø Acquisition of restricted access should be possible, but restricted Restricted access mechanism is called privilege Ø Hardware supports two privilege levels Supervisor or privileged mode Ø Processor can execute any code, read/write any data User or unprivileged mode Ø Processor may not execute some code, read/write some memory Ø E.g., cannot read/write video memory or device registers Privilege in LC3 PSR (Processor Status Register)? Ø PSR[15] is the privilege bit Ø If PSR[15] == 1, current code is privileged, i.e., the OS instruction and data memories split into two- example: Ø x0000-x7fff: user segment Ø x8000-xffff: OS segment Ø Video memory (xc000-xfdff) is in OS segment Ø I/O device registers (xfe00-xffff) are too If PSR[15]==0 and current program tries to Ø execute an instruction with PC[15] == 1 Ø or read/write data with address[15] == 1 Ø hardware kills it! Note: LC3 simulator does not implement this. 11