LDD Final Project Background report

Slides:



Advertisements
Similar presentations
Device Layer and Device Drivers
Advertisements

§4.4 Input and Output Devices
I/O Organization popo.
CCNA3: Switching Basics and Intermediate Routing v3.0 CISCO NETWORKING ACADEMY PROGRAM Switching Concepts Introduction to Ethernet/802.3 LANs Introduction.
A look at interrupts What are interrupts and why are they needed.
FIU Chapter 7: Input/Output Jerome Crooks Panyawat Chiamprasert
Ethernet Physical Layer. PROCESS OF SENDING AND RECEIVING PACKETS Network/OS software executes a routine to send the frame to the network interface controller.
Network Adapter Driver NCTU High Speed Network Lab.
Midterm Tuesday October 23 Covers Chapters 3 through 6 - Buses, Clocks, Timing, Edge Triggering, Level Triggering - Cache Memory Systems - Internal Memory.
Hardware Interface Design Patterns Ahmet Selman Bozkır – Hacettepe Univ.
INPUT/OUTPUT ARCHITECTURE By Truc Truong. Input Devices Keyboard Keyboard Mouse Mouse Scanner Scanner CD-Rom CD-Rom Game Controller Game Controller.
The University of New Hampshire InterOperability Laboratory Serial ATA (SATA) Protocol Chapter 10 – Transport Layer.
Input/Output. Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower.
Q and A for Ch. 17 CS 332, Spring Fiber Modems Q: Why use fiber modem extensions? Is it to save money on not having to use as much fiber (otherwise.
5: DataLink Layer5-1 Chapter 5 Link Layer and LANs Part 1: Overview of the Data Link layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose,
© 2006 Cisco Systems, Inc. All rights reserved. Optimizing Converged Cisco Networks (ONT) Module 4: Implement the DiffServ QoS Model.
1 Computer System Overview Chapter 1. 2 n An Operating System makes the computing power available to users by controlling the hardware n Let us review.
COMPUTER ORGANIZATIONS CSNB123 NSMS2013 Ver.1Systems and Networking1.
Xen I/O Overview. Xen is a popular open-source x86 virtual machine monitor – full-virtualization – para-virtualization para-virtualization as a more efficient.
Xen I/O Overview.
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
1-1 Embedded Network Interface (ENI) API Concepts Shared RAM vs. FIFO modes ENI API’s.
ECE 353 Introduction to Microprocessor Systems Michael Schulte Week 13.
Penn State CSE “Optimizing Network Virtualization in Xen” Aravind Menon, Alan L. Cox, Willy Zwaenepoel Presented by : Arjun R. Nath.
Tami Meredith, Ph.D. CSCI  Devices need CPU access  E.g., NIC has a full buffer it needs to empty  These device needs are often asynchronous.
Computers Internal Communication. Basic Computer System MAIN MEMORY ALUCNTL..... BUS CONTROLLER Processor I/O moduleInterconnections BUS Memory.
Ethernet Driver Changes for NET+OS V5.1. Design Changes Resides in bsp\devices\ethernet directory. Source code broken into more C files. Native driver.
I/O management is a major component of operating system design and operation Important aspect of computer operation I/O devices vary greatly Various methods.
Interrupts, Buses Chapter 6.2.5, Introduction to Interrupts Interrupts are a mechanism by which other modules (e.g. I/O) may interrupt normal.
1 Ch 10 LAN Wiring, Physical Topology, and Interface Hardware.
An initial study on Multi Path Routing Over Multiple Devices in Linux 2.4.x kernel Towards CS522 term project By Syama Sundar Kosuri.
ECE 526 – Network Processing Systems Design Computer Architecture: traditional network processing systems implementation Chapter 4: D. E. Comer.
Chapter 5 Link Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 Link Layer introduction,
Intro  Scratchpad rings and queues.  First – In – Firs – Out (FIFO) data structure.  Rings are fixed-sized, circular FIFO.  Queues not fixed-size.
Interrupt driven I/O. MIPS RISC Exception Mechanism The processor operates in The processor operates in user mode user mode kernel mode kernel mode Access.
Embedded Network Interface (ENI). What is ENI? Embedded Network Interface Originally called DPO (Digital Product Option) card Printer without network.
Ethernet Overview it the IEEE standard for Ethernet.
Identify basic switching concepts and the operation of Cisco switches.
IT3002 Computer Architecture
Interrupt driven I/O Computer Organization and Assembly Language: Module 12.
Chapter 13: I/O Systems Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005 I/O through system calls Protection.
Input Output Techniques Programmed Interrupt driven Direct Memory Access (DMA)
I/O Organization Competency – C6. Important facts to remember when I/O devices are to be connected to CPU There is a vast variety of I/O devices. Some.
CCNA3 Module 4 Brierley Module 4. CCNA3 Module 4 Brierley Topics LAN congestion and its effect on network performance Advantages of LAN segmentation in.
1 Chapter Overview  Network Cables  Network Interface Adapters  Network Hubs.
Transferring Data – Primary Memory to Secondary Storage F451 - AS Computing.
Ch.12 Communication Systems Valvano’s text Introduction SCI can be used to create a network. Figure 12.1 gives a general visualization. –At lowest.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Overview: Using Hardware.
Local Area Networks: Topologies. 2 Packet Identification & MAC Addresses Each packet specifies an intended recipient with an identifier. – Demultiplexing.
Transmitter Interrupts Review of Receiver Interrupts How to Handle Transmitter Interrupts? Critical Regions Text: Tanenbaum
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
I/O SYSTEMS MANAGEMENT Krishna Kumar Ahirwar ( )
Local Area Networks: Topologies
Operating Systems (CS 340 D)
Computer Architecture
CS 286 Computer Organization and Architecture
Slave cores Etherbone Accessible device Etherbone Accessible device E
Final Review CS144 Review Session 9 June 4, 2008 Derrick Isaacson
BIC 10503: COMPUTER ARCHITECTURE
Computer System Overview
Seminar class presentation Student: Chuming Chen & Xinliang Zheng
Transmitter Interrupts
Intertask Communication
Jazan University, Jazan KSA
Using RealTek interrupts
Presentation transcript:

LDD Final Project Background report

Outline Paper survey Overview of design NIC driver Code survey

Paper survey Writing Drivers for the DP8390 NIC Family of Ethernet Controllers Wireless LAN resources for Linux

Design NIC driver overview Driver overview NIC Card Driver CPU Interrupt & Receive packet Transmit packet Interrupt & Receive packet Interne t

Design NIC driver overview Driver 主要負責的事情:  Hardware initialization  Packet transmission  Receive driver Driver 可區分為兩個元件:  DriverSend  DriverISR

Design NIC driver overview Hardware initialization  data bus width (8 or 16 bits)  physical address  types of interrupts that may be serviced  size of the Receive Buffer Ring  FIFO threshold

Design NIC driver overview Packet transmission  transfer data from the memory to the host's Local Buffer Ring.  Partition into two parts : DriverSend DriverISR Receive driver  transfer data from the Receive Buffer Ring to the host's memory.  Use command “send packet”  Use pointers : BOUNDARY and CURRENT

Design NIC driver overview DriverSend  Initiate transmission  Check NIC is ready  If ready, transfer data  If not, queues the packet in the transmit-pending queue

Design NIC driver overview DriverISR  Receptions  Transmissions  Errored transmissions  P.s. Errored receptions are ignored (usually collision fragments)

Design NIC driver overview Interrupt Service Routine  Check interrupt type  Packet receptions?  Packet transsmition?

Design NIC driver overview NIC Ring buffer Driver Transmit receive DriverISR CPU Memory Pending queue While complete Interrupt Transfer until buffer is empty Device busy

Code survey DriverSend QueueIt() PCtoNIC() Busy? No Yes Return DriverSend

Code survey DriverISR Pkg_recv_rt() NICtoPC() recv? No Yes Return ISR routine Exit_isr() tx? No overflow? Yes No Ring_ovfl() Yes Pkg_tx_rt() Bad tx? No Chk_tx_queue() Bad_tx() Yes

End Any question?