CS61C L26 IO & Performance I (1) Pearce, Summer 2010 © UCB inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture 26 IO Basics, Storage & Performance.

Slides:



Advertisements
Similar presentations
IT253: Computer Organization
Advertisements

CS1104 – Computer Organization
CS61C L13 I/O © UC Regents 1 CS 161 Chapter 8 - I/O Lecture 17.
CS1104: Computer Organisation School of Computing National University of Singapore.
Lecture 36: Chapter 6 Today’s topic –RAID 1. RAID Redundant Array of Inexpensive (Independent) Disks –Use multiple smaller disks (c.f. one large disk)
CSCE 212 Chapter 8 Storage, Networks, and Other Peripherals Instructor: Jason D. Bakos.
RAID Technology. Use Arrays of Small Disks? 14” 10”5.25”3.5” Disk Array: 1 disk design Conventional: 4 disk designs Low End High End Katz and Patterson.
CS 430 – Computer Architecture Disks
CS61C L40 Performance I (1) Garcia © UCB Lecturer PSOE Dan Garcia inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures.
CS 61C: Great Ideas in Computer Architecture (Machine Structures) Lecture 36: IO Basics Instructor: Dan Garcia
CS 61C L42 Performance I (1) Garcia, Spring 2004 © UCB Lecturer PSOE Dan Garcia inst.eecs.berkeley.edu/~cs61c CS61C : Machine.
Computer ArchitectureFall 2007 © November 28, 2007 Karem A. Sakallah Lecture 24 Disk IO and RAID CS : Computer Architecture.
1 Lecture 26: Storage Systems Topics: Storage Systems (Chapter 6), other innovations Final exam stats:  Highest: 95  Mean: 70, Median: 73  Toughest.
CS61C L40 I/O: Disks (1) Garcia, Fall 2004 © UCB Lecturer PSOE Dan Garcia inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures.
Computer ArchitectureFall 2008 © November 12, 2007 Nael Abu-Ghazaleh Lecture 24 Disk IO.
Disk Technologies. Magnetic Disks Purpose: – Long-term, nonvolatile, inexpensive storage for files – Large, inexpensive, slow level in the memory hierarchy.
CS61C L37 I/O (1) Garcia © UCB Lecturer PSOE Dan Garcia inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture.
1 CS222: Principles of Database Management Fall 2010 Professor Chen Li Department of Computer Science University of California, Irvine Notes 01.
CS61C L41 Performance I (1) Garcia, Fall 2004 © UCB Lecturer PSOE Dan Garcia inst.eecs.berkeley.edu/~cs61c CS61C : Machine.
CS 61C L41 I/O Disks (1) Garcia, Spring 2004 © UCB Lecturer PSOE Dan Garcia inst.eecs.berkeley.edu/~cs61c CS61C : Machine.
CS61C L221 Performance © UC Regents 1 CS61C - Machine Structures Lecture 22 - Introduction to Performance November 17, 2000 David Patterson
CS430 – Computer Architecture Lecture - Introduction to Performance
CPSC 231 Secondary storage (D.H.)1 Learning Objectives Understanding disk organization. Sectors, clusters and extents. Fragmentation. Disk access time.
CS 61C: Great Ideas in Computer Architecture (Machine Structures) Lecture 39: IO Disks Instructor: Dan Garcia 1.
Storage & Peripherals Disks, Networks, and Other Devices.
CS 61C: Great Ideas in Computer Architecture (Machine Structures) Lecture 38: IO and Networking Instructor: Dan Garcia
3/11/2002CSE Input/Output Input/Output Control Datapath Memory Processor Input Output Memory Input Output Network Control Datapath Processor.
Computing Hardware Starter.
I/O – Chapter 8 Introduction Disk Storage and Dependability – 8.2 Buses and other connectors – 8.4 I/O performance measures – 8.6.
Disk Access. DISK STRUCTURE Sector: Smallest unit of data transfer from/to disk; 512B 2/4/8 adjacent sectors transferred together: Blocks Read/write heads.
Lecture 2: Computer Performance
 Design model for a computer  Named after John von Neuman  Instructions that tell the computer what to do are stored in memory  Stored program Memory.
1 (Based on text: David A. Patterson & John L. Hennessy, Computer Organization and Design: The Hardware/Software Interface, 3 rd Ed., Morgan Kaufmann,
Csci 136 Computer Architecture II – CPU Performance Xiuzhen Cheng
10/19/2015Erkay Savas1 Performance Computer Architecture – CS401 Erkay Savas Sabanci University.
1/14/2005Yan Huang - CSCI5330 Database Implementation – Storage and File Structure Storage and File Structure.
Performance.
Lecture 35: Chapter 6 Today’s topic –I/O Overview 1.
Topic 6: Further System Fundamentals. Fetch-Execute Cycle Review Computer programs are instructions stored in RAM Processor fetches instructions and executes.
Accessing I/O Devices Processor Memory BUS I/O Device 1 I/O Device 2.
Computer Performance Computer Engineering Department.
Inst.eecs.berkeley.edu/~cs61c UCB CS61C : Machine Structures Lecture 35 – Input / Output We’ve merged 3 lectures into 1… See 2008Sp for full.
1 CS/COE0447 Computer Organization & Assembly Language CHAPTER 4 Assessing and Understanding Performance.
Lecture 3 Page 1 CS 111 Online Disk Drives An especially important and complex form of I/O device Still the primary method of providing stable storage.
CH10 Input/Output DDDData Transfer EEEExternal Devices IIII/O Modules PPPProgrammed I/O IIIInterrupt-Driven I/O DDDDirect Memory.
Computer Organization. This module surveys the physical resources of a computer system.  Basic components  CPU  Memory  Bus  I/O devices  CPU structure.
CS2100 Computer Organisation Input/Output – Own reading only (AY2015/6) Semester 1 Adapted from David Patternson’s lecture slides:
© GCSE Computing Computing Hardware Starter. Creating a spreadsheet to demonstrate the size of memory. 1 byte = 1 character or about 1 pixel of information.
CS 61C: Great Ideas in Computer Architecture (Machine Structures) Lecture 37: IO Basics Instructor: Dan Garcia
Adapted from Computer Organization and Design, Patterson & Hennessy ECE232: Hardware Organization and Design Part 17: Input/Output Chapter 6
1 Lecture 1: Computer System Structures We go over the aspects of computer architecture relevant to OS design  overview  input and output (I/O) organization.
Processor Memory Processor-memory bus I/O Device Bus Adapter I/O Device I/O Device Bus Adapter I/O Device I/O Device Expansion bus I/O Bus.
Lec2.1 Computer Architecture Chapter 2 The Role of Performance.
1 Lecture 27: Disks Today’s topics:  Disk basics  RAID  Research topics.
1 Lecture 23: Storage Systems Topics: disk access, bus design, evaluation metrics, RAID (Sections )
CPSC 231 Secondary storage (D.H.)1 Learning Objectives Understanding disk organization. Sectors, clusters and extents. Fragmentation. Disk access time.
Interrupts and Exception Handling. Execution We are quite aware of the Fetch, Execute process of the control unit of the CPU –Fetch and instruction as.
10/15: Lecture Topics Input/Output –Types of I/O Devices –How devices communicate with the rest of the system communicating with the processor communicating.
Mohamed Younis CMCS 411, Computer Architecture 1 CMCS Computer Architecture Lecture 25 I/O Systems May 2,
CS 61C: Great Ideas in Computer Architecture (Machine Structures) More I/O: DMA Vladimir Stojanovic & Nicholas Weaver
1 Components of the Virtual Memory System  Arrows indicate what happens on a lw virtual address data physical address TLB page table memory cache disk.
CMSC 611: Advanced Computer Architecture I/O & Storage Some material adapted from Mohamed Younis, UMBC CMSC 611 Spr 2003 course slides Some material adapted.
Chapter 2: Computer-System Structures
Multiple Platters.
Vladimir Stojanovic & Nicholas Weaver
Lecture 13 I/O.
Lecture 28: Reliability Today’s topics: GPU wrap-up Disk basics RAID
Performance.
Presentation transcript:

CS61C L26 IO & Performance I (1) Pearce, Summer 2010 © UCB inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture 26 IO Basics, Storage & Performance I HACKING THE SMART GRID  Instructor Paul Pearce With the rapid deployment of “Smart Grid” technology, such as the smart meters PG&E is currently deploying throughout all of Berkeley, questions are being raised as to the safety and security and such devices.

CS61C L26 IO & Performance I (2) Pearce, Summer 2010 © UCB Goals for today: Today we’re going to be giving you a VERY high level overview of system input/output. The goal is not to make you experts in any one area, but simply to give you brief exposure in a number of areas. We’ll also start talking about system performance, which we’ll finish up tomorrow. We’re going to start with: I/O Basics

CS61C L26 IO & Performance I (3) Pearce, Summer 2010 © UCB Recall : 5 components of any Computer Processor (active) Computer Control (“brain”) Datapath (“brawn”) Memory (passive) (where programs, data live when running) Devices Input Output Keyboard, Mouse Display, Printer Disk, Network Earlier LecturesCurrent Lecture

CS61C L26 IO & Performance I (4) Pearce, Summer 2010 © UCB A way to present them to user programs so they are useful What do we need to make I/O work? cmd reg. data reg. Operating System APIsFiles Proc Mem A way to connect many types of devices to the Proc-Mem PCI Bus SCSI Bus A way to control these devices, respond to them, and transfer data

CS61C L26 IO & Performance I (5) Pearce, Summer 2010 © UCB Memory Mapped I/O Certain addresses are not regular memory Instead, they correspond to registers in I/O devices cntrl reg. data reg. 0 0xFFFFFFFF 0xFFFF0000 address

CS61C L26 IO & Performance I (6) Pearce, Summer 2010 © UCB Processor Checks Status before Acting Path to device generally has 2 registers: Control Register, says it’s OK to read/write (I/O ready) [think of a flagman on a road] Data Register, contains data Processor reads from Control Register in loop, waiting for device to set Ready bit in Control reg (0  1) to say its OK Processor then loads from (input) or writes to (output) data register Load from or Store into Data Register resets Ready bit (1  0) of Control Register This is called “Polling”

CS61C L26 IO & Performance I (7) Pearce, Summer 2010 © UCB What is the alternative to polling? Wasteful to have processor spend most of its time “spin-waiting” for I/O to be ready if events are infrequent 1GHz microprocessor can execute 1 billion load or store instructions per second, or 4,000,000 KB/s data rate I/O devices data rates range from 0.01 KB/s to 125,000 KB/s Note: When discussing transfer rates, use 10 x Would like an unplanned procedure call that would be invoked only when I/O device is ready Solution: use exception mechanism to help I/O. Interrupt program when I/O ready, return when done with data transfer

CS61C L26 IO & Performance I (8) Pearce, Summer 2010 © UCB I/O Interrupt An I/O interrupt is like overflow exceptions except: An I/O interrupt is “asynchronous” More information needs to be conveyed An I/O interrupt is asynchronous with respect to instruction execution: I/O interrupt is not associated with any instruction, but it can happen in the middle of any given instruction I/O interrupt does not prevent any instruction from completion

CS61C L26 IO & Performance I (9) Pearce, Summer 2010 © UCB Interrupt-Driven Data Transfer (1) I/O interrupt (2) save PC Memory add sub and or user program read store... jr interrupt service routine (3) jump to interrupt service routine (4) perform transfer (5)

CS61C L26 IO & Performance I (10) Pearce, Summer 2010 © UCB disks

CS61C L26 IO & Performance I (11) Pearce, Summer 2010 © UCB Magnetic Disk – common I/O device A kind of computer memory Information stored by magnetizing ferrite material on surface of rotating disk Nonvolatile storage retains its value without applying power to disk. Two Types Floppy disks – slower, less dense, removable, non-existent today Hard Disk Drives (HDD) – faster, more dense, non- removable. Purpose in computer systems (Hard Drive): Long-term, inexpensive storage for files “Backup” for main-memory. Large, inexpensive, slow level in the memory hierarchy (virtual memory)

CS61C L26 IO & Performance I (12) Pearce, Summer 2010 © UCB Photo of Disk Head, Arm, Actuator Actuator Arm Head Platters (1-12) { Spindle

CS61C L26 IO & Performance I (13) Pearce, Summer 2010 © UCB Administrivia Project 2 graded under way, if you haven’t signed up for a slot…. You should get on that. Project 3 out now No partners for this project! Grading underway for rest of the assignments. Will get them done ASAP Don’t forget to register your iClicker Final Thursday August 12 th from 8am to 11am in 10 Evans.

CS61C L26 IO & Performance I (14) Pearce, Summer 2010 © UCB Disk Device Terminology Several platters, with information recorded magnetically on both surfaces (usually) Bits recorded in tracks, which in turn divided into sectors (e.g., 512 Bytes) Actuator moves head (end of arm) over track (“seek”), wait for sector rotate under head, then read or write Outer Track Inner Track Sector Actuator HeadArm Platter

CS61C L26 IO & Performance I (15) Pearce, Summer 2010 © UCB Disk Device Performance (1/2) Disk Latency = Seek Time + Rotation Time + Transfer Time + Controller Overhead Seek Time? depends on no. tracks to move arm, speed of actuator Rotation Time? depends on speed disk rotates, how far sector is from head Transfer Time? depends on data rate (bandwidth) of disk (f(bit density,rpm)), size of request Platter Arm Actuator Head Sector Inner Track Outer Track Controller Spindle

CS61C L26 IO & Performance I (16) Pearce, Summer 2010 © UCB Disk Device Performance (2/2) Average distance of sector from head? 1/2 time of a rotation 7200 Revolutions Per Minute  120 Rev/sec 1 revolution = 1/120 sec  8.33 milliseconds 1/2 rotation (revolution)  4.17 ms Average no. tracks to move arm? Disk industry standard benchmark:  Sum all time for all possible seek distances from all possible tracks / # possible  Assumes average seek distance is random Size of Disk cache can strongly affect perf! Cache built into disk system, OS knows nothing

CS61C L26 IO & Performance I (17) Pearce, Summer 2010 © UCB Where does Flash memory come in? Microdrives and Flash memory (e.g., CompactFlash) are going head-to-head Both non-volatile (no power, data ok) Flash benefits: durable & lower power (no moving parts, need to spin µdrives up/down) Flash limitations: finite number of write cycles (wear on the insulating oxide layer around the charge storage mechanism). Most ≥ 100K, some ≥ 1M W/erase cycles. How does Flash memory work? NMOS transistor with an additional conductor between gate and source/drain which “traps” electrons. The presence/absence is a 1 or 0. en.wikipedia.org/wiki/Flash_memory

CS61C L26 IO & Performance I (18) Pearce, Summer 2010 © UCB What does Apple put in its iPods? Samsung flash 4, 8GB shuffle, nano, classic, touch Toshiba 1.8-inch HDD 80, 160GB Toshiba flash 1, 2GB Toshiba flash 8, 16, 32GB

CS61C L26 IO & Performance I (19) Pearce, Summer 2010 © UCB RAID : Redundant Array of Inexpensive Disks Berkeley (1989) by Patterson, Katz, et al. A multi-billion industry 80% non-PC disks sold in RAIDs Idea: Files are “striped” across multiple disks in a redundant manor Redundancy yields high data availability  Disks will still fail Contents reconstructed from data redundantly stored in the array  Capacity penalty to store redundant info  Bandwidth penalty to update redundant info

CS61C L26 IO & Performance I (20) Pearce, Summer 2010 © UCB Performance

CS61C L26 IO & Performance I (21) Pearce, Summer 2010 © UCB Why Performance? Faster is better! Purchasing Perspective: given a collection of machines (or upgrade options), which has the  best performance ?  least cost ?  best performance / cost ? Computer Designer Perspective: faced with design options, which has the  best performance improvement ?  least cost ?  best performance / cost ? All require basis for comparison and metric for evaluation! Solid metrics lead to solid progress!

CS61C L26 IO & Performance I (22) Pearce, Summer 2010 © UCB Two Notions of “Performance” Which has higher performance? Interested in time fly one plane? Interested in delivering as many passengers per day as possible? In a computer, time for one task called Latency or Response Time or Execution Time In a computer, tasks per unit time called Throughput or Bandwidth Plane Boeing 747 BAD/Sud Concorde Top Speed DC to Paris Passen- gers Throughput (pmph) 610 mph 6.5 hours , mph 3 hours132178,200

CS61C L26 IO & Performance I (23) Pearce, Summer 2010 © UCB Definitions Performance is in units of things per sec bigger is better If mostly concerned with response time performance(x) = 1 execution_time(x) “ F(ast) is n times faster than S(low) ” means: performance(F) execution_time(S) n = = performance(S) execution_time(F)

CS61C L26 IO & Performance I (24) Pearce, Summer 2010 © UCB Example of Response Time v. Throughput Time of Concorde vs. Boeing 747? Concord is [6.5 hours / 3 hours = 2.2] times faster than the Boeing Concord is 2.2 times (“120%”) faster in terms of flying time (response time) Throughput of Boeing vs. Concorde? Boeing 747: 286,700 pmph / 178,200 pmph = 1.6 times faster Boeing is 1.6 times (“60%”) faster in terms of throughput We will focus primarily on response time.

CS61C L26 IO & Performance I (25) Pearce, Summer 2010 © UCB Straightforward definition of time: Total time to complete a task, including disk accesses, memory accesses, I/O activities, operating system overhead,... “real time”, “response time” or “elapsed time” Alternative: just time processor (CPU) is working only on your program (since multiple processes running at same time) “CPU execution time” or “CPU time” Often divided into system CPU time (in OS) and user CPU time (in user program) What is Time?

CS61C L26 IO & Performance I (26) Pearce, Summer 2010 © UCB Real Time  Actual time elapsed CPU Time: Computers constructed using a clock that runs at a constant rate and determines when events take place in the hardware These discrete time intervals called clock cycles (or informally clocks or cycles) Length of clock period: clock cycle time (e.g., ½ nanoseconds or ½ ns) and clock rate (e.g., 2 gigahertz, or 2 GHz), which is the inverse of the clock period; use these! How to Measure Time?

CS61C L26 IO & Performance I (27) Pearce, Summer 2010 © UCB Measuring Time using Clock Cycles (1/2) CPU execution time for a program Units of [seconds / program] or [s/p] = Clock Cycles for a program x Clock Period Units of [s/p] = [cycles / p] x [s / cycle] = [c/p] x [s/c] Or = Clock Cycles for a program [c / p] Clock Rate [c / s]

CS61C L26 IO & Performance I (28) Pearce, Summer 2010 © UCB One way to define clock cycles: Clock Cycles for program [c/p] = Instructions for a program [i/p] (called “Instruction Count”) x Average Clock cycles Per Instruction [c/i] (abbreviated “CPI”) CPI one way to compare two machines with same instruction set, since Instruction Count would be the same Measuring Time using Clock Cycles (2/2)

CS61C L26 IO & Performance I (29) Pearce, Summer 2010 © UCB 1)Processors must communicate with I/O devices via special instructions. 2)For devices with low I/O event frequency polling is a better choice than interrupts. Peer Instruction 12 a) FF b) FT c) TF d) TT

CS61C L26 IO & Performance I (30) Pearce, Summer 2010 © UCB 1)Processors must communicate with I/O devices via special instructions. 2)For devices with low I/O event frequency polling is a better choice than interrupts. F A L S E 1) No. Many platforms (such as MIPS) can use normal load/store instructions thanks to Memory Mapped I/O. 2) No. Low I/O event frequency means the CPU will waste cycles waiting for data to arrive. Interrupts would be a better choice. F A L S E Peer Instruction Answers 12 a) FF b) FT c) TF d) TT

CS61C L26 IO & Performance I (31) Pearce, Summer 2010 © UCB “And in conclusion…” I/O gives computers their 5 senses Vast I/O speed range Processor speed means must synchronize with I/O devices before use Polling works, but expensive processor repeatedly queries devices Interrupts works, more complex devices causes an exception, causing OS to run and deal with the device Latency v. Throughput Real Time: time user waits for program to execute: depends heavily on how OS switches between tasks CPU Time: time spent executing a single program: depends solely on design of processor (datapath, pipelining effectiveness, caches, etc.)

CS61C L26 IO & Performance I (32) Pearce, Summer 2010 © UCB Bonus slides These are extra slides that used to be included in lecture notes, but have been moved to this, the “bonus” area to serve as a supplement. The slides will appear in the order they would have in the normal presentation

CS61C L26 IO & Performance I (33) Pearce, Summer 2010 © UCB Networks

CS61C L26 IO & Performance I (34) Pearce, Summer 2010 © UCB Founders JCR Licklider, as head of ARPA, writes on “intergalactic network” 1963 : ASCII becomes first universal computer standard 1969 : Defense Advanced Research Projects Agency (DARPA) deploys 4 UCLA, SRI, Utah, & UCSB 1973 Robert Kahn & Vint Cerf invent TCP, now part of the Internet Protocol Suite Internet growth rates Exponential since start! The Internet (1962) en.wikipedia.org/wiki/Internet_Protocol_Suite “Lick” Vint Cerf Revolutions like this don't come along very often

CS61C L26 IO & Performance I (35) Pearce, Summer 2010 © UCB Why Networks? Originally sharing I/O devices between computers E.g., printers Then communicating between computers E.g., file transfer protocol Then communicating between people E.g., Then communicating between networks of computers E.g., file sharing, www, …

CS61C L26 IO & Performance I (36) Pearce, Summer 2010 © UCB “System of interlinked hypertext documents on the Internet” History 1945: Vannevar Bush describes hypertext system called “memex” in article 1989: Tim Berners-Lee proposes, gets system up ’90 ~2000 Dot-com entrepreneurs rushed in, 2001 bubble burst Wayback Machine Snapshots of web over time Today : Access anywhere! The World Wide Web (1989) en.wikipedia.org/wiki/History_of_the_World_Wide_Web Tim Berners- Lee World’s First web server in

CS61C L26 IO & Performance I (37) Pearce, Summer 2010 © UCB Shared vs. Switched Based Networks Shared vs. Switched: Switched: pairs (“point-to- point” connections) communicate at same time Shared: 1 at a time (CSMA/CD) Aggregate bandwidth (BW) in switched network is many times shared: point-to-point faster since no arbitration, simpler interface Node Shared Crossbar Switch Node

CS61C L26 IO & Performance I (38) Pearce, Summer 2010 © UCB What makes networks work? links connecting switches to each other and to computers or devices Computer network interface switch ability to name the components and to route packets of information - messages - from a source to a destination Layering, redundancy, protocols, and encapsulation as means of abstraction (61C big idea)

CS61C L26 IO & Performance I (39) Pearce, Summer 2010 © UCB “RAID 0”: No redundancy = “AID” Assume have 4 disks of data for this example, organized in blocks Large accesses faster since transfer from several disks at once This and next 5 slides from RAID.edu, also has a great tutorial

CS61C L26 IO & Performance I (40) Pearce, Summer 2010 © UCB RAID 1: Mirror data Each disk is fully duplicated onto its “mirror” Very high availability can be achieved Bandwidth reduced on write: 1 Logical write = 2 physical writes Most expensive solution: 100% capacity overhead

CS61C L26 IO & Performance I (41) Pearce, Summer 2010 © UCB RAID 3: Parity Parity computed across group to protect against hard disk failures, stored in P disk Logically, a single high capacity, high transfer rate disk 25% capacity cost for parity in this example vs. 100% for RAID 1 (5 disks vs. 8 disks)

CS61C L26 IO & Performance I (42) Pearce, Summer 2010 © UCB Inspiration for RAID 5 (RAID 4 block-striping) Small writes (write to one disk): Option 1: read other data disks, create new sum and write to Parity Disk (access all disks) Option 2: since P has old sum, compare old data to new data, add the difference to P: 1 logical write = 2 physical reads + 2 physical writes to 2 disks Parity Disk is bottleneck for Small writes: Write to A0, B1  both write to P disk A0 B0C0 D0 P A1 B1 C1 P D1

CS61C L26 IO & Performance I (43) Pearce, Summer 2010 © UCB RAID 5: Rotated Parity, faster small writes Independent writes possible because of interleaved parity Example: write to A0, B1 uses disks 0, 1, 4, 5, so can proceed in parallel Still 1 small write = 4 physical disk accesses en.wikipedia.org/wiki/Redundant_array_of_independent_disks

CS61C L26 IO & Performance I (44) Pearce, Summer 2010 © UCB Will (try to) stick to “n times faster”; its less confusing than “m % faster” As faster means both decreased execution time and increased performance, to reduce confusion we will (and you should) use “improve execution time” or “improve performance” Words, Words, Words…