Getting Rid of Multiplexers Years ago, as a neophyte to digital electronics, I used to wonder why many devices only offered write- only registers with.

Slides:



Advertisements
Similar presentations
Part 4: combinational devices
Advertisements

EKT 221 : Digital 2 MUX-based Transfer
RAM (RANDOM ACCESS MEMORY)
COEN 180 SRAM. High-speed Low capacity Expensive Large chip area. Continuous power use to maintain storage Technology used for making MM caches.
Chapter 5 Internal Memory
Overview Part 2 – Combinational Logic Functions and functional blocks
Functions and Functional Blocks
Chapter 7 Henry Hexmoor Registers and RTL
+ CS 325: CS Hardware and Software Organization and Architecture Internal Memory.
Henry Hexmoor1 C hapter 4 Henry Hexmoor-- SIUC Rudimentary Logic functions: Value fixing Transferring Inverting.
1 KU College of Engineering Elec 204: Digital Systems Design Lecture 9 Programmable Configurations Read Only Memory (ROM) – –a fixed array of AND gates.
Programmable Keyboard/ Display Interface: 8279
Random access memory Sequential circuits all depend upon the presence of memory. A flip-flop can store one bit of information. A register can store a single.
Overview Part 2 – Combinational Logic
1 Digital Logic
1 Memory Management Chapter 7. 2 Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated to ensure a reasonable.
Registers  Flip-flops are available in a variety of configurations. A simple one with two independent D flip-flops with clear and preset signals is illustrated.
Chapter 5 Internal Memory

INPUT/OUTPUT ORGANIZATION INTERRUPTS CS147 Summer 2001 Professor: Sin-Min Lee Presented by: Jing Chen.
1 Threads Chapter 4 Reading: 4.1,4.4, Process Characteristics l Unit of resource ownership - process is allocated: n a virtual address space to.
Data Storage Technology
CS 151 Digital Systems Design Lecture 38 Programmable Logic.
16/07/2015CSE1303 Part B lecture notes 1 Hardware Implementation Lecture B17 Lecture notes section B17.
EKT 221 Digital Electronics II
Khaled A. Al-Utaibi Memory Devices Khaled A. Al-Utaibi
Computing Hardware Starter.
+ CS 325: CS Hardware and Software Organization and Architecture Combinational Circuits 1.
MICROPROCESSOR INPUT/OUTPUT
Input/Output. I/O Initiation & Control  Transfer of data between circuitry external to the microprocessor and the microprocessor itself.  Transfer of.
EKT 221 : Digital 2 Memory Basics
Digital Logic Problems (II) Prof. Sin-Min Lee Department of Mathematics and Computer Science.
EKT 221/4 DIGITAL ELECTRONICS II  Registers, Micro-operations and Implementations - Part3.
Penn ESE370 Fall DeHon 1 ESE370: Circuit-Level Modeling, Design, and Optimization for Digital Systems Day 24: November 5, 2010 Memory Overview.
Chap 5. Registers and Counters. Chap Definition of Register and Counter l a clocked sequential circuit o consist of a group of flip-flops & combinational.
+ CS 325: CS Hardware and Software Organization and Architecture Memory Organization.
1 Memory Management Chapter 7. 2 Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated to ensure a reasonable.
PHY 201 (Blum)1 Microcode Source: Digital Computer Electronics (Malvino and Brown)
Input-Output Organization
PROJECT - ZYNQ Yakir Peretz Idan Homri Semester - winter 2014 Duration - one semester.
L/O/G/O Input Output Chapter 4 CS.216 Computer Architecture and Organization.
© GCSE Computing Computing Hardware Starter. Creating a spreadsheet to demonstrate the size of memory. 1 byte = 1 character or about 1 pixel of information.
1 Outline Bus Transfer Memory Transfer Microoperations.
Department of Electronic & Electrical Engineering LCD character display (parallel interface). How to interface a LCD character display to a PIC.
Sahar Mosleh PageCalifornia State University San Marcos 1 More on Flip Flop State Table and State Diagram.
Lecture # 10 University of Tehran
07/11/2005 Register File Design and Memory Design Presentation E CSE : Introduction to Computer Architecture Slides by Gojko Babić.
Memory 2 ©Paul Godin Created March 2008 Memory 2.1.
Done by: Chelsea Bryan Friday, October 10,2014.   The BIOS (aka) Basic input/output system, is a built in software that determines what's a computer.
3/19/  Differentiate the class of memory  List the type of main memory  Explain memory architecture and operation  Draw memory map  Design.
Computer Architecture Chapter (5): Internal Memory
RAM RAM - random access memory RAM (pronounced ramm) random access memory, a type of computer memory that can be accessed randomly;
5-2-3 Analogue to Digital Converters (ADC). Analogue to Digital Conversion The process is now the opposite of that studied in Topic Now we wish.
MICROPROCESSOR BASED SYSTEM DESIGN BY PROF. DR. B. S. CHOWDHRY Lecture #
Prof. Sin-Min Lee Department of Computer Science
Memory Hierarchy Ideal memory is fast, large, and inexpensive
Random access memory Sequential circuits all depend upon the presence of memory. A flip-flop can store one bit of information. A register can store a single.
Random access memory Sequential circuits all depend upon the presence of memory. A flip-flop can store one bit of information. A register can store a single.
ECE 434 Advanced Digital System L03
Registers and Counters Register : A Group of Flip-Flops. N-Bit Register has N flip-flops. Each flip-flop stores 1-Bit Information. So N-Bit Register Stores.
Interfacing Memory Interfacing.
LECTURE 15 – DIGITAL ELECTRONICS
Threads Chapter 4.
CSC 220: Computer Organization
Recall: ROM example Here are three functions, V2V1V0, implemented with an 8 x 3 ROM. Blue crosses (X) indicate connections between decoder outputs and.
2.C Memory GCSE Computing Langley Park School for Boys.
Random access memory Sequential circuits all depend upon the presence of memory. A flip-flop can store one bit of information. A register can store a single.
Digital Circuits and Logic
ECE 352 Digital System Fundamentals
ECE 352 Digital System Fundamentals
Presentation transcript:

Getting Rid of Multiplexers Years ago, as a neophyte to digital electronics, I used to wonder why many devices only offered write- only registers with no register readback. The lack of a symmetrical read operation to complement the write operations seemed weird. One of the things impacting performance in a system is the number of cascaded multiplexers. With numerous I/O device controllers in an system the register readback can require a lot of multiplexers. For example if there are 10 I/O device controllers with 8 registers each, that’s 80 registers that need to be multiplexed onto a single data bus. Devices Muxes System read bus Robert Finch

Being able to read back an I/O device control register is of limited value, and multiplexers can be expensive. The typical solution then of many I/O device controllers is to not have registers that can be read back. If the register value is going to remain static (if it’s non-volatile) typically a write-only register is implemented. It’s left up to software to keep track of values written to registers if needed. The device controllers use write-only registers to avoid the expense of read-back multiplexers, except in cases where read-back is absolutely necessary. One cannot implement a UART receiver for instance, without being able to read the receive register. Is there a way to obtain register feedback and avoid read-back multiplexers in I/O devices ? Getting Rid of Multiplexers

Another solution to write only registers or tons of multiplexers, is to use an I/O shadow memory that tracks writes to I/O device controller registers and maintains a copy. This is essentially the operation that’s normally done by software, implemented with hardware. Getting Rid of Multiplexers I/O Shadow Memory Devices System read bus Muxes Less readback multiplexing needed

Typically, I/O device controller registers are grouped together into a region of the memory map (or I/O map) of the system. The I/O shadow memory occupies and responds to the same range of addresses as the I/O controller registers. Device $D00x $D01x $D02x I/O Device Memory Map Getting Rid of Multiplexers I/O Shadow Memory Overlays the same address range for several devices. $D0xx

In order to avoid conflicting reads, the read-back path from the I/O devices is ignored, and instead reads come from the shadow memory. Writes can occur simultaneously to both I/O device control registers, and the shadow memory. The shadow memory keeps track of data written to the I/O registers by maintaining it’s own copy. In cases where it is necessary to read an I/O register because it is updated externally, read-back from the shadow memory has to be disabled, and a read from the I/O device has to occur. In order to support an I/O shadow memory, the I/O controller needs to supply a signal indicating when a volatile register is being read. Getting Rid of Multiplexers I/O Shadow Memory System read bus volatile register signal Memory cells modified by external agents are typically called volatile memory locations. volatile registers Non-volatile register readbacks removed shadow memory gate

Example: A video display controller contains registers allowing the number of rows and columns to be configured. Since these registers are not updated in an external hardware fashion, they are typically implemented as write-only registers. The number of rows and columns visible on the video display is something that is often maintained or used by software. As the display is updated, software needs to know how many rows or columns are present, so typically a copy of this information is maintained in a software config area. These registers are candidates for the I/O shadow memory. A second example is a cursor position register. Adjusting the cursor position is often implemented as a read- write register. Using a shadow memory, this register can be made write-only in the video controller, while the value can still be read from the I/O shadow memory. Getting Rid of Multiplexers

The vol_o signal. The shadow memory could be implemented as part of the I/O device controller, and not an independent memory. However this results in an inefficiency in the way memory is used. Memory in a electronic device typically comes in block form. There is often far more memory in the block memory resource than would be required by a single I/O device. It makes sense then to share the memory capacity of a single memory resource amongst several I/O devices. In order to use a shadow memory system, the system needs to know when a volatile I/O register is being read. Hence a signal (I call it “vol_o”) needs to be supplied by the I/O device. Getting Rid of Multiplexers

// mux the reg outputs if (cs) begin case(adr_i[3:0])// synopsys full_case parallel_case `UART_MS:dat_o <= {dcdx[1],1'b0,dsrx[1],ctsx[1],dcd_chg,3'b0}; `UART_IS:dat_o <= {irq_o, 2'b0, irqenc, 2'b0}; `UART_LS:dat_o <= {1'b0, tx_empty, tx_empty, 1'b0, frame_err, 1'b0, over_run, data_present_o}; default:dat_o <= rx_do; endcase end else dat_o <= 8'b0; Getting Rid of Multiplexers Example: -Read-back from a serial uart. The uart actually contains about a dozen registers for configuration. However there are only four volatile registers. The other config registers are non-volatile in nature. In the example below, only the four volatile registers are multiplexed onto the data bus. A signal “vol_o” is generated indicating the read-back would be from a volatile register. This allows the other registers to be implemented in a I/O shadow memory. assign vol_o = cs && adr_i[3:2]==2'b00;

As a last note, note that in the example the data output is set to zero, when the device is deselected. This allows the output to be combined with other devices in a ‘wired-or’ fashion. This also helps to eliminate multiplexer use. The value of the I/O shadow memory is that it allows all the registers that contain non-volatile data to be implemented as write-only registers in I/O device controllers. Read-back for these registers can come from the shadow memory. Sometimes, the I/O shadow memory can be found almost for “free”. If the I/O map overlays a small portion of a RAM all that’s needed is a little bit of control logic. For instance in a system with a 16MB memory map, a 16MB ram might be in use. ROM and I/O locations mapped into the memory map, “override” the RAM access at various points in the memory map. Getting Rid of Multiplexers