The document discusses input and output in computer systems. It describes three main techniques for transferring data between the CPU and I/O devices: programmed I/O, interrupt-driven I/O, and direct memory access (DMA). Programmed I/O involves the CPU continuously polling I/O devices, interrupt-driven I/O uses interrupts to signal the CPU when data is ready, and DMA allows high-speed transfer of data directly between memory and I/O devices without CPU involvement.
Introduction to Object-Oriented Programming
Object-Oriented Programming (OOP) is a programming paradigm that organizes software design around data, or objects, rather than functions and logic. It is widely used for developing complex, scalable, and maintainable software systems. The core principles of OOP include encapsulation, abstraction, inheritance, and polymorphism.
Key Concepts of OOP
Encapsulation: This involves bundling data and methods that operate on that data within a single unit, called an object. It helps protect the internal state of an object from external interference23.
Abstraction: This principle focuses on exposing only necessary information while hiding complex details. It allows users to interact with objects without knowing their internal workings23.
Inheritance: This feature enables a new class (subclass) to inherit properties and behaviors from an existing class (superclass), promoting code reuse and hierarchical organization23.
Polymorphism: This allows objects of different classes to be treated as objects of a common superclass. It enables multiple behaviors to be implemented through a common interface23.
Object Technology and Programming Environment
Object Technology: This refers to the use of objects to model real-world entities in software development. It includes classes, objects, inheritance, polymorphism, and encapsulation7.
Programming Environment: OOP is typically supported in class-based languages like Java, Python, and C++. These environments provide tools for designing, developing, and testing object-oriented software
The document discusses input/output (I/O) problems in computer systems and solutions to those problems. Some key issues addressed are the variety of peripheral devices with different data rates and formats, and the mismatch between peripheral and processor speeds. The document describes I/O modules that interface between the CPU/memory and peripherals. I/O modules handle control, buffering, error detection and allow different I/O techniques like programmed I/O, interrupt-driven I/O and direct memory access (DMA) to transfer data efficiently.
The document discusses input/output (I/O) organization in computers. It describes how the I/O subsystem provides communication between external devices and the central processing system. Common peripheral devices include monitors, keyboards, printers, and magnetic tapes. The document outlines different I/O techniques including programmed I/O, interrupt-driven I/O, and direct memory access. It also discusses I/O interfaces, addressing schemes, and how interrupts work to signal device completion.
The document discusses input/output (I/O) modules in a computer system. I/O modules interface between peripheral devices and the system bus. They contain logic to communicate with different types of peripherals using various techniques, including programmed I/O, interrupt-driven I/O, and direct memory access (DMA). DMA allows large blocks of data to be transferred directly between memory and peripherals without using the processor's bandwidth, improving transfer speeds.
The document discusses input/output (I/O) systems in computers. It defines I/O systems and their functions, which include interfacing the CPU and memory with peripheral devices like keyboards, printers, and network cards. I/O modules handle this interfacing by controlling timing, communicating with the CPU and devices, decoding commands, buffering and transferring data, and detecting errors. The document outlines the steps in I/O operations and compares different I/O techniques like programmed, interrupt-driven, and direct memory access (DMA).
I/O ports allow connection between computers and peripheral devices like keyboards, mice and monitors. There are two main types of ports: serial ports which transmit data one bit at a time, and parallel ports which allow simultaneous transmission of multiple bits of data. Common ports include VGA, DVI, HDMI and USB. Device drivers act as an interface between the operating system and device controllers to allow communication between I/O devices and the CPU. There are three main I/O mechanisms: programmed I/O where the CPU directly controls I/O, interrupts where devices signal the CPU when ready, and DMA which allows hardware subsystems to access memory independently of the CPU.
This document discusses input/output techniques in computers, including programmed I/O, interrupt-driven I/O, and direct memory access (DMA). With programmed I/O, the CPU directly controls all I/O operations and wastes time waiting for operations to complete. Interrupt-driven I/O allows I/O modules to interrupt the CPU when an operation finishes to avoid CPU idling. DMA uses a separate controller to transfer data directly between I/O devices and memory without CPU involvement, improving transfer speeds.
The document discusses principles of input/output (I/O) systems. It covers I/O hardware components like devices, controllers, and buses. It then describes I/O software layers including device drivers, interrupt handlers, and device-independent operating system software. Finally, it discusses principles of I/O organization like layered architecture, error handling, synchronous vs asynchronous transfers, and application programming interfaces.
The document discusses input/output (I/O) in computer systems. It describes various I/O techniques including programmed I/O, interrupt-driven I/O, and direct memory access (DMA). It also covers I/O modules, external devices, addressing schemes, and interface standards like SCSI and FireWire.
Input/output modules are critical components that allow computers to interact with external devices. I/O modules serve as an interface between peripherals and the CPU/memory. They perform important functions like control and timing of data transfers, communication with the processor and devices, buffering data, and error detection. I/O modules connect to the system bus and contain data buffers, status registers, and logic to interact with the processor via control lines. This allows external devices like disks and tapes to connect indirectly to the computer and be managed through simple read/write commands.
The document discusses various methods for input/output (I/O) in computer systems, including programmed I/O, interrupt-driven I/O, and direct memory access (DMA). It describes I/O modules that interface peripherals with the CPU and memory. Common I/O techniques include programmed I/O where the CPU directly controls I/O, interrupt-driven I/O where devices interrupt the CPU, and DMA where an I/O controller handles data transfers without CPU involvement. Specific I/O interfaces like SCSI and FireWire are also overviewed.
This document discusses the basic hardware components of a computer system including the processor, memory, I/O modules, and system bus. It describes how the processor executes instructions, uses registers for data storage, and relies on clocks to measure time. Main memory is described as volatile RAM that can be accessed randomly. The document also provides an overview of operating systems, describing their role in interfacing between users, applications, and physical hardware and controlling resource allocation and program execution.
The document provides an overview of computer architecture and input/output techniques. It defines computer architecture as the set of instructions that describe a computer's organization and implementation. It discusses how I/O modules interface external devices like keyboards and printers to the CPU and memory. There are three main I/O techniques: programmed I/O where the CPU directly controls I/O, interrupt-driven I/O where devices interrupt the CPU when ready, and DMA where devices access memory independently of the CPU to improve efficiency. The document outlines the components and functioning of I/O modules and the various I/O commands used to control peripheral devices.
The document discusses input-output (I/O) modules in computers. It explains that I/O modules play a crucial role in allowing communication between a computer's central processing unit (CPU) and external devices. I/O modules connect devices to the computer's system bus and control the exchange of data between devices and main memory or the CPU. They help address issues like differing data formats and speeds between devices and the CPU. The document outlines various I/O techniques like programmed I/O, interrupt-driven I/O, and direct memory access (DMA) that use I/O modules to facilitate input and output.
I/O System and Case Study of Operating System its easy way to find how the I/O's are connected with the Operating System and And the mechanism of the Operating System
This document discusses principles of computer input/output (I/O) hardware and software. It covers topics like I/O devices, device controllers, buses, I/O techniques (programmed I/O, interrupt-driven I/O, and direct memory access), device drivers, layers of I/O software, file systems, and storage devices like disks. The document provides details on how operating systems manage and interface with various I/O components to facilitate data transfer and storage.
This document discusses input/output (I/O) in computer systems. It describes how I/O modules bridge the gap between peripherals and the processor/memory bus by acting as an interface. I/O modules handle control/timing, buffering data, and error detection to accommodate differences in speed between devices and the CPU. The document outlines various I/O techniques including programmed I/O where the CPU directly controls I/O, and interrupt-driven I/O where devices interrupt the CPU when an operation completes.
This document discusses input/output (I/O) in computer systems. It describes how I/O modules bridge the gap between peripherals and the processor/memory bus. It covers various I/O techniques like programmed I/O, interrupt-driven I/O, and direct memory access (DMA). Programmed I/O involves the CPU directly controlling data transfers, interrupt-driven I/O uses interrupts to signal the CPU when transfers are done, and DMA allows direct transfer between peripherals and memory without using the CPU.
This document discusses input/output (I/O) in computer systems. It describes how I/O modules bridge the gap between peripherals and the processor/memory bus by converting data formats and speeds. I/O modules handle control, timing, buffering, and error detection for various external devices like displays, storage, and networking. The document compares programmed I/O, where the CPU directly manages data transfer, to interrupt-driven I/O, where the I/O module notifies the CPU asynchronously when an operation completes via an interrupt request.
The document discusses input/output (I/O) systems in computers. It defines I/O systems and their functions, which include interfacing the CPU and memory with peripheral devices like keyboards, printers, and network cards. I/O modules handle this interfacing by controlling timing, communicating with the CPU and devices, decoding commands, buffering and transferring data, and detecting errors. The document outlines the steps in I/O operations and compares different I/O techniques like programmed, interrupt-driven, and direct memory access (DMA).
I/O ports allow connection between computers and peripheral devices like keyboards, mice and monitors. There are two main types of ports: serial ports which transmit data one bit at a time, and parallel ports which allow simultaneous transmission of multiple bits of data. Common ports include VGA, DVI, HDMI and USB. Device drivers act as an interface between the operating system and device controllers to allow communication between I/O devices and the CPU. There are three main I/O mechanisms: programmed I/O where the CPU directly controls I/O, interrupts where devices signal the CPU when ready, and DMA which allows hardware subsystems to access memory independently of the CPU.
This document discusses input/output techniques in computers, including programmed I/O, interrupt-driven I/O, and direct memory access (DMA). With programmed I/O, the CPU directly controls all I/O operations and wastes time waiting for operations to complete. Interrupt-driven I/O allows I/O modules to interrupt the CPU when an operation finishes to avoid CPU idling. DMA uses a separate controller to transfer data directly between I/O devices and memory without CPU involvement, improving transfer speeds.
The document discusses principles of input/output (I/O) systems. It covers I/O hardware components like devices, controllers, and buses. It then describes I/O software layers including device drivers, interrupt handlers, and device-independent operating system software. Finally, it discusses principles of I/O organization like layered architecture, error handling, synchronous vs asynchronous transfers, and application programming interfaces.
The document discusses input/output (I/O) in computer systems. It describes various I/O techniques including programmed I/O, interrupt-driven I/O, and direct memory access (DMA). It also covers I/O modules, external devices, addressing schemes, and interface standards like SCSI and FireWire.
Input/output modules are critical components that allow computers to interact with external devices. I/O modules serve as an interface between peripherals and the CPU/memory. They perform important functions like control and timing of data transfers, communication with the processor and devices, buffering data, and error detection. I/O modules connect to the system bus and contain data buffers, status registers, and logic to interact with the processor via control lines. This allows external devices like disks and tapes to connect indirectly to the computer and be managed through simple read/write commands.
The document discusses various methods for input/output (I/O) in computer systems, including programmed I/O, interrupt-driven I/O, and direct memory access (DMA). It describes I/O modules that interface peripherals with the CPU and memory. Common I/O techniques include programmed I/O where the CPU directly controls I/O, interrupt-driven I/O where devices interrupt the CPU, and DMA where an I/O controller handles data transfers without CPU involvement. Specific I/O interfaces like SCSI and FireWire are also overviewed.
This document discusses the basic hardware components of a computer system including the processor, memory, I/O modules, and system bus. It describes how the processor executes instructions, uses registers for data storage, and relies on clocks to measure time. Main memory is described as volatile RAM that can be accessed randomly. The document also provides an overview of operating systems, describing their role in interfacing between users, applications, and physical hardware and controlling resource allocation and program execution.
The document provides an overview of computer architecture and input/output techniques. It defines computer architecture as the set of instructions that describe a computer's organization and implementation. It discusses how I/O modules interface external devices like keyboards and printers to the CPU and memory. There are three main I/O techniques: programmed I/O where the CPU directly controls I/O, interrupt-driven I/O where devices interrupt the CPU when ready, and DMA where devices access memory independently of the CPU to improve efficiency. The document outlines the components and functioning of I/O modules and the various I/O commands used to control peripheral devices.
The document discusses input-output (I/O) modules in computers. It explains that I/O modules play a crucial role in allowing communication between a computer's central processing unit (CPU) and external devices. I/O modules connect devices to the computer's system bus and control the exchange of data between devices and main memory or the CPU. They help address issues like differing data formats and speeds between devices and the CPU. The document outlines various I/O techniques like programmed I/O, interrupt-driven I/O, and direct memory access (DMA) that use I/O modules to facilitate input and output.
I/O System and Case Study of Operating System its easy way to find how the I/O's are connected with the Operating System and And the mechanism of the Operating System
This document discusses principles of computer input/output (I/O) hardware and software. It covers topics like I/O devices, device controllers, buses, I/O techniques (programmed I/O, interrupt-driven I/O, and direct memory access), device drivers, layers of I/O software, file systems, and storage devices like disks. The document provides details on how operating systems manage and interface with various I/O components to facilitate data transfer and storage.
This document discusses input/output (I/O) in computer systems. It describes how I/O modules bridge the gap between peripherals and the processor/memory bus by acting as an interface. I/O modules handle control/timing, buffering data, and error detection to accommodate differences in speed between devices and the CPU. The document outlines various I/O techniques including programmed I/O where the CPU directly controls I/O, and interrupt-driven I/O where devices interrupt the CPU when an operation completes.
This document discusses input/output (I/O) in computer systems. It describes how I/O modules bridge the gap between peripherals and the processor/memory bus. It covers various I/O techniques like programmed I/O, interrupt-driven I/O, and direct memory access (DMA). Programmed I/O involves the CPU directly controlling data transfers, interrupt-driven I/O uses interrupts to signal the CPU when transfers are done, and DMA allows direct transfer between peripherals and memory without using the CPU.
This document discusses input/output (I/O) in computer systems. It describes how I/O modules bridge the gap between peripherals and the processor/memory bus by converting data formats and speeds. I/O modules handle control, timing, buffering, and error detection for various external devices like displays, storage, and networking. The document compares programmed I/O, where the CPU directly manages data transfer, to interrupt-driven I/O, where the I/O module notifies the CPU asynchronously when an operation completes via an interrupt request.
CS-102 Data Structures huffman coding.pdfssuser034ce1
Huffman coding is a lossless data compression algorithm that uses variable-length codewords to encode symbols based on their frequency of occurrence in a file. It builds a binary tree from the frequency of symbols, with more common symbols nearer the root, to assign shorter codewords to more frequent symbols. The document describes the basic Huffman coding algorithm which involves building the Huffman tree from a priority queue of symbol frequencies, traversing the tree to determine codewords, and encoding a sample text file using the new codewords to achieve compression. Real-world applications of Huffman coding include data compression in GNU gzip and internet standards.
CS-102 Data Structures HashFunction CS102.pdfssuser034ce1
Hashing is a technique for implementing dictionaries that provides constant time per operation on average. It works by using a hash function to map keys to positions in a hash table. Ideally, an element with key k would be stored at position h(k). However, collisions can occur if multiple keys map to the same position. When a collision occurs, the element is stored in the next available empty position. Searching for an element involves computing its hash value to locate its position, and searching linearly if a collision is encountered. Deletion requires marking deleted positions as empty rather than truly empty to avoid interfering with searches.
CS-102 Data Structure lectures on Graphsssuser034ce1
The document defines and explains various graph concepts:
- It describes graph representations like adjacency matrices and lists, and types of graphs like undirected, directed, and weighted.
- Key graph terminology is introduced such as vertices, edges, paths, cycles, connectedness, subgraphs, and degrees of vertices.
- Examples are provided to illustrate concepts like complete graphs, trees, and bipartite graphs.
- Graph representations like adjacency matrices and linked/packed adjacency lists are also summarized.
This document discusses different components of space complexity, including instruction space for storing compiled program code, data space for storing variables and constants, and environment stack space for saving function call information. It provides examples of calculating space complexity for programs using arrays, recursion, and dynamic memory allocation, noting space complexities of O(1), O(n), O(n^2), and O(log n).
CS-102 DS-class03 Class DS Lectures .pdfssuser034ce1
The document discusses big O notation and how it is used to analyze the time complexity of algorithms. It provides examples of calculating time complexity for different code snippets. The time complexity classifications range from O(1) being utopian to O(dn) where d>1 being a disaster. It also discusses how to determine the time required to run a problem of larger size based on the time taken for a smaller size.
CS-102 DS-class_01_02 Lectures Data .pdfssuser034ce1
This document provides information about the Data Structures course CS 102 taught by Dr. Balasubramanian Raman at Indian Institute of Technology Roorkee. It outlines the course syllabus, importance of algorithms and data structures, and how to analyze time and space complexity of algorithms. Key concepts covered include asymptotic notation such as Big-O, Big-Omega, and Big-Theta which are used to describe how fast algorithms grow relative to input size. Examples are provided to illustrate these asymptotic notations.
CS-102 BT_24_3_14 Binary Tree Lectures.pdfssuser034ce1
The document discusses operations on heaps and leftist trees. Key points include:
- Heaps can be used to implement priority queues, with operations like MAX-HEAPIFY, BUILD-MAX-HEAP, and HEAPSORT taking O(log n) time on average.
- Leftist trees are a type of self-balancing binary search tree that supports priority queue operations like insertion and deletion in O(log n) time.
- Leftist trees have properties like shortest root-to-leaf paths being O(log n) that allow them to efficiently support priority queue operations through melding of subtrees.
CS-102 Course_ Binary Tree Lectures .pdfssuser034ce1
Heap sort uses a max heap to sort an array in O(n log n) time. It works by building a max heap from the array and then repeatedly removing the maximum element and placing it in the correct position. It first constructs a max heap from the input array. It then iterates from the end of the array to the beginning, removing each element from the heap and placing it in the current position. This places the largest elements at the end of the array and the smallest at the beginning.
Newly poured concrete opposing hot and windy conditions is considerably susceptible to plastic shrinkage cracking. Crack-free concrete structures are essential in ensuring high level of durability and functionality as cracks allow harmful instances or water to penetrate in the concrete resulting in structural damages, e.g. reinforcement corrosion or pressure application on the crack sides due to water freezing effect. Among other factors influencing plastic shrinkage, an important one is the concrete surface humidity evaporation rate. The evaporation rate is currently calculated in practice by using a quite complex Nomograph, a process rather tedious, time consuming and prone to inaccuracies. In response to such limitations, three analytical models for estimating the evaporation rate are developed and evaluated in this paper on the basis of the ACI 305R-10 Nomograph for “Hot Weather Concreting”. In this direction, several methods and techniques are employed including curve fitting via Genetic Algorithm optimization and Artificial Neural Networks techniques. The models are developed and tested upon datasets from two different countries and compared to the results of a previous similar study. The outcomes of this study indicate that such models can effectively re-develop the Nomograph output and estimate the concrete evaporation rate with high accuracy compared to typical curve-fitting statistical models or models from the literature. Among the proposed methods, the optimization via Genetic Algorithms, individually applied at each estimation process step, provides the best fitting result.
The use of huge quantity of natural fine aggregate (NFA) and cement in civil construction work which have given rise to various ecological problems. The industrial waste like Blast furnace slag (GGBFS), fly ash, metakaolin, silica fume can be used as partly replacement for cement and manufactured sand obtained from crusher, was partly used as fine aggregate. In this work, MATLAB software model is developed using neural network toolbox to predict the flexural strength of concrete made by using pozzolanic materials and partly replacing natural fine aggregate (NFA) by Manufactured sand (MS). Flexural strength was experimentally calculated by casting beams specimens and results obtained from experiment were used to develop the artificial neural network (ANN) model. Total 131 results values were used to modeling formation and from that 30% data record was used for testing purpose and 70% data record was used for training purpose. 25 input materials properties were used to find the 28 days flexural strength of concrete obtained from partly replacing cement with pozzolans and partly replacing natural fine aggregate (NFA) by manufactured sand (MS). The results obtained from ANN model provides very strong accuracy to predict flexural strength of concrete obtained from partly replacing cement with pozzolans and natural fine aggregate (NFA) by manufactured sand.
The TRB AJE35 RIIM Coordination and Collaboration Subcommittee has organized a series of webinars focused on building coordination, collaboration, and cooperation across multiple groups. All webinars have been recorded and copies of the recording, transcripts, and slides are below. These resources are open-access following creative commons licensing agreements. The files may be found, organized by webinar date, below. The committee co-chairs would welcome any suggestions for future webinars. The support of the AASHTO RAC Coordination and Collaboration Task Force, the Council of University Transportation Centers, and AUTRI’s Alabama Transportation Assistance Program is gratefully acknowledged.
This webinar overviews proven methods for collaborating with USDOT University Transportation Centers (UTCs), emphasizing state departments of transportation and other stakeholders. It will cover partnerships at all UTC stages, from the Notice of Funding Opportunity (NOFO) release through proposal development, research and implementation. Successful USDOT UTC research, education, workforce development, and technology transfer best practices will be highlighted. Dr. Larry Rilett, Director of the Auburn University Transportation Research Institute will moderate.
For more information, visit: https://aub.ie/trbwebinars
Introduction to ANN, McCulloch Pitts Neuron, Perceptron and its Learning
Algorithm, Sigmoid Neuron, Activation Functions: Tanh, ReLu Multi- layer Perceptron
Model – Introduction, learning parameters: Weight and Bias, Loss function: Mean
Square Error, Back Propagation Learning Convolutional Neural Network, Building
blocks of CNN, Transfer Learning, R-CNN,Auto encoders, LSTM Networks, Recent
Trends in Deep Learning.
Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...AI Publications
The escalating energy crisis, heightened environmental awareness and the impacts of climate change have driven global efforts to reduce carbon emissions. A key strategy in this transition is the adoption of green energy technologies particularly for charging electric vehicles (EVs). According to the U.S. Department of Energy, EVs utilize approximately 60% of their input energy during operation, twice the efficiency of conventional fossil fuel vehicles. However, the environmental benefits of EVs are heavily dependent on the source of electricity used for charging. This study examines the potential of renewable energy (RE) as a sustainable alternative for electric vehicle (EV) charging by analyzing several critical dimensions. It explores the current RE sources used in EV infrastructure, highlighting global adoption trends, their advantages, limitations, and the leading nations in this transition. It also evaluates supporting technologies such as energy storage systems, charging technologies, power electronics, and smart grid integration that facilitate RE adoption. The study reviews RE-enabled smart charging strategies implemented across the industry to meet growing global EV energy demands. Finally, it discusses key challenges and prospects associated with grid integration, infrastructure upgrades, standardization, maintenance, cybersecurity, and the optimization of energy resources. This review aims to serve as a foundational reference for stakeholders and researchers seeking to advance the sustainable development of RE based EV charging systems.
David Boutry - Specializes In AWS, Microservices And Python.pdfDavid Boutry
With over eight years of experience, David Boutry specializes in AWS, microservices, and Python. As a Senior Software Engineer in New York, he spearheaded initiatives that reduced data processing times by 40%. His prior work in Seattle focused on optimizing e-commerce platforms, leading to a 25% sales increase. David is committed to mentoring junior developers and supporting nonprofit organizations through coding workshops and software development.
Design of Variable Depth Single-Span Post.pdfKamel Farid
Hunched Single Span Bridge: -
(HSSBs) have maximum depth at ends and minimum depth at midspan.
Used for long-span river crossings or highway overpasses when:
Aesthetically pleasing shape is required or
Vertical clearance needs to be maximized
この資料は、Roy FieldingのREST論文(第5章)を振り返り、現代Webで誤解されがちなRESTの本質を解説しています。特に、ハイパーメディア制御やアプリケーション状態の管理に関する重要なポイントをわかりやすく紹介しています。
This presentation revisits Chapter 5 of Roy Fielding's PhD dissertation on REST, clarifying concepts that are often misunderstood in modern web design—such as hypermedia controls within representations and the role of hypermedia in managing application state.
4. Dr. Sudip Roy 4
External Device Block Diagram:
External Devices:
Human readable
Screen, printer, keyboard
Machine readable
Monitoring and control
Communication
Modem
Network Interface Card (NIC)
5. Dr. Sudip Roy 5
I/O Problems:
Wide variety of peripherals
Delivering different amounts of data
At different speeds
In different formats
All slower than CPU and RAM
Need I/O modules
I/O Module:
Interface to CPU and Memory
Interface to one or more peripherals
6. Dr. Sudip Roy 6
I/O Module Diagram:
Generic Model of I/O
Module
7. Dr. Sudip Roy 7
I/O Module Function:
Control & Timing
CPU Communication
Device Communication
Data Buffering
Error Detection
CPU checks I/O module device status
I/O module returns status
If ready, CPU requests data transfer
I/O module gets data from device
I/O module transfers data to CPU
Variations for output, DMA, etc.
I/O Steps:
8. Dr. Sudip Roy 8
I/O Module Decisions:
Hide or reveal device properties to CPU
Support multiple or single device
Control device functions or leave for CPU
Also O/S decisions
e.g. Unix treats everything it can as a file
Input Output Techniques:
Programmed I/O
Interrupt driven I/O
Direct Memory Access (DMA)
9. Dr. Sudip Roy 9
Three Techniques for Input of a Block of Data:
10. Dr. Sudip Roy 10
Programmed I/O:
CPU has direct control over I/O
Sensing status
Read/write commands
Transferring data
CPU waits for I/O module to complete operation
Wastes CPU time
CPU requests I/O operation
I/O module performs operation
I/O module sets status bits
CPU checks status bits periodically
I/O module does not inform CPU
directly
I/O module does not interrupt CPU
CPU may wait or come back later
Programmed I/O ‐ Details: Addressing I/O Devices:
Under programmed I/O data
transfer is very much like memory
access (CPU viewpoint)
Each device given unique identifier
CPU commands contain identifier
(address)
11. Dr. Sudip Roy 11
I/O Mapping:
Isolated I/O
Separate address spaces
Need I/O or memory select lines
Special commands for I/O
Limited set
Memory mapped I/O
Devices and memory share an address space
I/O looks just like memory read/write
No special commands for I/O
Large selection of memory access commands available
12. Dr. Sudip Roy 12
Type of Peripheral I/O:
Isolated I/O
13. Dr. Sudip Roy 13
Changes in Memory and Registers for an Interrupt:
14. Dr. Sudip Roy 14
Interrupt Driven I/O:
Overcomes CPU waiting
No repeated CPU checking of device
I/O module interrupts when ready
Basic Operations:
CPU issues read command
I/O module gets data from peripheral whilst CPU does other
work
I/O module interrupts CPU
CPU requests data
I/O module transfers data
16. Dr. Sudip Roy 16
Interrupt Processing: CPU Viewpoint
Issue read command
Do other work
Check for interrupt at end of each instruction cycle
If interrupted:‐
Save context (registers)
Process interrupt
Fetch data & store
Will have more discussion in Operating Systems classes
17. Dr. Sudip Roy 17
Interrupt‐driven I/O Design Issues:
Identifying Interrupting Module:
Software poll
CPU asks each module in turn to determine which module caused the
interrupt
Slow
Daisy Chain or Hardware poll
All I/O modules share a common interrupt request line
Interrupt acknowledge line is daisy chained through the modules
When the processor senses an interrupt it sends out an interrupt
acknowledge
Module responsible places vector on bus
CPU uses vector to identify handler routine
20. Dr. Sudip Roy 20
Interrupts & Priority:
Multiple Interrupts:
Each interrupt line has a priority
Higher priority lines can interrupt lower priority lines
In bus mastering, only current master can interrupt
Example ‐ PC Bus:
80x86 has one interrupt line
8086 based systems use one 8259A interrupt controller
8259A has 8 interrupt lines
21. Dr. Sudip Roy 21
Intel 82C55A: Programmable Peripheral Interface
22. Dr. Sudip Roy 22
Intel 82C55A: Programmable
Peripheral Interface