SlideShare a Scribd company logo
1 of 123
The CPU Bus
 Bus based computer systems created using microprocessors, I/O
devices and memory components.
 A computer system encompasses much more than the CPU; it also
includes memory and I/O devices. The bus is the mechanism by
which the CPU communicates with memory and devices.
 A bus is, at a minimum, a collection of wires, but the bus also
devices
defines a protocol by which the CPU, memory, and
communicate.
162
Bus Protocols
 Basic building block of most protocols is the four-cycle handshake.
 The handshake uses a pair of wires dedicated to the handshake:
enq (meaning enquiry) and ack (meaning acknowledge). Extra
wires are used for the data transmitted during the handshake.
163
Bus Protocols
 The four cycles are described below,
 Device 1 raises its output to signal
device 2 that it should get ready to listen
an enquiry, which tells
the data.
 When device 2 is ready to receive, it raises its output
an acknowledgment. At this point, devices 1 and 2 can
or receive.
to signal
transmit
 Once the data transfer is complete, device 2 lowers its output,
signaling that it has received the data.
 After seeing that
output.
ack has been released, device 1 lowers its
164
Bus Protocols
165
The CPU Bus
 Bus- set of related wires or bundle (address wires) or a protocol
for communicating between components.
 The fundamental bus operations are reading and writing.
166
The CPU Bus
 Clock provides synchronization to the bus components.
 R/W is true when the bus is reading and false when the bus is
writing.
 Address is an a-bit bundle of signals that transmits the address for
an access.
 Data is an n-bit bundle of signals that can carry data to or from the
CPU
 Data ready signals when the values on the data bundle are valid.
167
The CPU Bus
 All transfers on this basic bus are controlled by the CPU—the CPU
can read or write a device or memory, but devices or memory cannot
initiate a transfer. R/W and address lines are unidirectional signals.
 The behavior of a bus is most often specified as a timing diagram.
 A timing diagram shows how the signals on a bus vary over time.
 A’s value is known at all times, so it is shown as a standard
waveform that changes between zero and one.
 B and C alternate between changing (does not have a stable value)
and stable (Ex: address bus) state.
 Changing signals should not be used for computation.
168
The CPU Bus
 Timing constraints- Ensures that signals go to their proper values
at proper times.
169
The CPU Bus
 During a read, the external device or memory is sending a value on
the data
lines.
lines, while during a write the CPU is controlling the data
170
The CPU Bus-Read Operation
 The data ready signal allows the bus to be connected to devices
that are slower than the bus.
External device need not immediately assert data ready.
 The cycles between the minimum time at which data can be
asserted are known as wait states.
 Wait states are commonly used to connect slow, inexpensive
memories to buses.
171
The CPU Bus- wait state on a read operation
172
The CPU Bus-Read Operation
 In the burst read transaction, the CPU sends one address but
receives a sequence of data values.
Add an extra line to the bus, called burst (signals when a
transaction is actually a burst).
Releasing the burst signal tells the device that enough data has
been transmitted.
To stop receiving data after the end of data 4, the CPU releases the
burst signal at the end of data 3 since the device requires some time
to recognize the end of the burst. Those values come from successive
memory locations starting at the given address.
173
The CPU Bus-Read Operation
174
The CPU Bus-Read Transaction
 State diagram represents the transition of control signals.
175
The CPU Bus-Multiplexed Address/Data line
Some buses use multiplexed address and data.
Additional control lines are provided to tell whether the value on
the address/data lines is an address or data.
Typically, the address comes first on the combined address/data
lines, followed by the data.
The address can be held in a register until the data arrive so that
both can
time.
be presented to the device (such as a RAM) at the same
176
The CPU Bus-Multiplexed Address/Data line
177
Direct Memory Access (DMA)
Standard bus transactions require the CPU to be in the middle of
every read and write transaction.
However, there are certain types of data transfers in which the CPU
does not need to be involved. For example, a high-speed I/O device
may want to transfer a block of data into memory.
 This capability requires that some unit other than the CPU be able
to control operations on the bus.
 Direct memory access (DMA) is a bus operation that allows reads
and writes not controlled by the CPU.
178
Direct Memory Access (DMA)
A DMA transfer is controlled by a DMA controller, which requests
control of the bus from the CPU.
After gaining control, the DMA controller performs read and write
operations directly between devices and memory.
179
Department of Electronics Engineering, MIT
, India
Direct Memory Access (DMA)
 The DMA requires the CPU to provide two additional bus signals:
 The bus request is an input to the CPU through which DMA
controllers ask for ownership of the bus.
 The bus grant signals that the bus has been granted to the DMA
controller
 A device that can initiate its own bus transfer is known as a bus
master.
 The DMA controller uses these two signals to gain control of the
bus using a classic four-cycle handshake.
180
Direct Memory Access (DMA)
The bus request is asserted by the DMA controller when it wants to
control the bus, and the bus grant is asserted by the CPU when the
bus is ready.
 The CPU will finish all pending bus transactions before granting
control of the bus to the DMA controller. When it does grant control,
it stops driving the other bus signals: R/W
, address, and so on.
 Upon becoming bus master, the DMA controller has control of all
bus signals (except, of course, for bus request and bus grant).
181
Direct Memory Access (DMA)
 Once the DMA controller is bus master, it can perform reads and
writes using the same bus protocol as with any CPU-driven bus
transaction.
 Memory and devices do not know whether a read or write is
performed by the CPU or by a DMA controller.
 After the transaction is finished, the DMA controller returns the
bus to the CPU by de-asserting the bus request, causing the CPU to
de-assert the bus grant.
 The CPU controls the DMA operation through registers in the DMA
controller.
182
Direct Memory Access (DMA)
 A typical DMA controller includes the following three registers:
A starting address register specifies where the transfer is to
begin.
A length register specifies the number of words to be
transferred.
A status register allows the DMA controller to be operated by
the CPU.
183
Direct Memory Access (DMA)
 The CPU initiates a DMA transfer by setting the starting address
and length registers appropriately and then writing the status
register to set its start transfer bit.
After the DMA operation is complete, the DMA controller
interrupts the CPU to tell it that the transfer is done.
What is the CPU doing during a DMA transfer?
 If the CPU has enough instructions and data in the cache and
registers, it may be able to continue doing useful work for quite
some time. But once the CPU needs the bus, it stalls until the DMA
controller returns bus mastership to the CPU.
184
Direct Memory Access (DMA)
185
Direct Memory Access (DMA)
 To prevent the CPU from idling for too long, most DMA controllers
implement modes that occupy the bus for only a few cycles at a time.
 For example, the transfer may be made 4, 8, or 16 words at a time.
186
System Bus Configurations
 A microprocessor system often has more than one bus.
 High-speed devices may be connected to an high-performance
bus, while lower-speed devices are connected to a different bus.
 A small block of logic known as a bridge allows the buses to
connect to each other.
187
System Bus Configurations
 There are several good reasons to use multiple buses and bridges:
 Higher-speed buses may provide wider data connections.
 A high-speed bus usually requires more expensive circuits and
connectors. The cost of low-speed devices can be held down
using a lower-speed, lower-cost bus.
 The bridge may allow the buses to operate independently,
thereby providing some parallelism in I/O operations.
 The bridge serves as a protocol translator between the two
bridges as well.
by
188
AMBA BUS in ARM
 ARM has created a separate bus specification for single-chip
systems.
 The AMBA bus [ARM99A] supports CPUs, memories, and
peripherals integrated in a system-on-silicon.
The AMBA specification includes two buses. The AMBA high-
performance bus (AHB) is optimized for high-speed transfers and is
directly connected to the CPU.
 It supports several high-performance features: pipelining, burst
transfers, split transactions, and multiple bus masters.
189
AMBA BUS in ARM
 A bridge can be used to connect the AHB to an AMBA peripherals
bus (APB). It consumes relatively little power.
 The AHB assumes that all peripherals act as slaves.
 It does not perform pipelined operations, which simplifies the bus
logic.
190
AMBA BUS in ARM
191
Memory Devices-Organization
 We need to understand the pinouts of these memories and how
values are read and written.
 Characterize a memory by its capacity (Ex: 256 MB).
 Memories can be of same capacity with different data width.
226
 64 M x 4-bit array with a maximum address of
address.
 32 M x 8-bit array with a maximum address of
addresses.
different
225 different
 The height/width ratio of a memory is known as its aspect ratio.
192
Memory Devices-Organization
 Internally, the data are stored in a 2D array of memory cells.
 The n-bit address received by the chip is split into a row and a
column address (n=r+c) .
193
Memory Devices-Organization
 Enable signal controls the tri-stating of data onto the memory’s
pins.
 A read/write (R/W) signal on read/write memories controls the
direction of data transfer; memory chips do not typically have
separate read and write data pins.
194
Random-Access Memories
 Random-access memories can be both read and written.
 They are called random access because, unlike magnetic disks,
addresses can be read in any order.
 dynamic RAM (DRAM)
 DRAM is very dense; however, require that its values be refreshed
periodically since the values inside the memory cells decay over
time.
 The dominant form of dynamic RAM today is synchronous DRAMs
(SDRAMs), which uses clocks to improve DRAM performance.
195
Random-Access Memories
 SDRAMs use Row Address Select (RAS) and Column Address
Select (CAS) signals to break the address into two parts, which select
the proper row and column in the RAM array.
 Signal transitions are relative to the SDRAM clock, which allows
the internal SDRAM operations to be pipelined.
 SDRAMs use a separate refresh signal to control refreshing.
DRAMs has to be refreshed roughly once per millisecond.
 Rather than refresh the entire memory at once, DRAMs refresh
part of the memory at a time.
196
Random-Access Memories
197
Random-Access Memories
 When a section of memory is being refreshed, it cannot be
accessed until the refresh is complete.
 The memory refresh occurs fairly few seconds so that each section
is refreshed every few microseconds.
 SDRAMs include registers that control the mode in which the
SDRAM operates. SDRAMs support burst modes that allow several
sequential addresses to be accessed by sending only one address.
 Interleaved mode exchanges pairs of bytes.
Double-data rate (DDR) SDRAMs, DDR2 and DDR3- faster
synchronous DRAMs-more operations per clock cycle.
198
SIMMs and DIMMs
 Memory for PCs is generally purchased as single in-line memory
modules (SIMMs) or double in-line memory modules (DIMMs).
 A SIMM or DIMM is a small circuit board that fits into a standard
memory socket.
 A DIMM has two sets of leads compared to the SIMM’s one.
 Memory chips are soldered to the circuit board to supply the
desired memory.
199
Read-Only Memories
 Read-only memories (ROMs)-preprogrammed with fixed data.
 less sensitive to radiation induced errors.
 Several types of ROM:
 factory-programmed ROM (mask-programmed ROM)
 field-programmable ROM (Flash memory-electrically erasable)
 Flash memory uses standard system voltage for erasing and
programming, allowing it to be reprogrammed inside a typical
system.
 Modern devices allow memory to be erased in blocks.
 Block protection is also possible (boot-block flash)
200
I/O Devices-Timers and Counters
Timers and counters are distinguished by their use, not their logic.
Both are built from adder logic with registers to hold the current
value, with an increment input that adds one to the current register
value.
 Timer is incremented by a periodic signal (clock-to measure time
intervals).
 Counter is incremented by an asynchronous or occasional signal
(to count the number of occurrences of some external event).
201
I/O Devices-Timers and Counters
 An n-bit counter/timer uses an n-bit register to store the current
state of the count and an array of half subtractors to decrement the
count when the count signal is asserted.
 Combinational logic checks when the count equals zero; the done
output signals the zero count. It is often useful to be able to control
2n
the time-out, rather than require exactly events to occur. For this
purpose, a reset register provides the value with which the count
register is to be loaded.
 The counter/timer provides logic to load the reset register.
202
I/O Devices-Timers and Counters
203
I/O Devices-Timers and Counters
 Most counters provide both cyclic and acyclic modes of operation.
 In the cyclic mode, once the counter reaches the done state, it is
automatically reloaded and the counting process continues.
 In acyclic mode, the counter/timer waits for an explicit signal from
the microprocessor to resume counting.
204
I/O Devices-Watchdog Timer
 I/O device used for internal operation of the system.
 Watchdog timer is connected into the CPU bus and also to the
CPU’s reset line.
 The CPU’s software is designed to periodically reset the watchdog
timer, before the timer ever reaches its time-out limit.
 If the watchdog timer ever does reach that limit, its time-out
action is to reset the processor.
 This event occurs whenever there is an software flaw or hardware
problem that has caused the CPU to misbehave.
205
I/O Devices-Watchdog Timer
206
I/O Devices-ADC and DAC
 Analog/Digital (A/D) and Digital/Analog (D/A) convertors are
often used to interface non digital devices to embedded systems.
 Analog/digital conversion requires sampling the analog input
before converting it to digital form.
 A control signal causes the A/D converter to take a sample and
digitize it.
 Fixed time and variable time converters provide a done signal so
that the microprocessor knows when the value is ready.
207
I/O Devices-ADC and DAC
 A data port allows A/D registers to be read and written, and a
clock input tells when to start the next conversion.
208
I/O Devices-Keyboards
 A keyboard is basically an array of switches, but it may include
some internal logic to help simplify the interface to the
microprocessor.
 A switch uses a mechanical contact to make or break an electrical
circuit.
The major problem with mechanical switches is that they bounce .
 When the switch is depressed by pressing on the button attached
to the switch’s arm, the force of the depression causes the contacts to
bounce several times until they settle down.
209
I/O Devices-Keyboards
 If this is not corrected, it will appear that the switch has been
pressed several times, giving false inputs.
 A hardware debouncing circuit can be built using a one-shot timer.
 Software can also be used to debounce switch inputs.
210
I/O Devices-Keyboards
 PC keyboards contains a microprocessor to preprocess button
inputs.
 PC keyboards typically use a 4-bit microprocessor to provide the
interface between the keys and the computer.
 The microprocessor can provide debouncing.
An encoded keyboard uses some
currently being depressed.
code to represent which switch is
 A scanned keyboard array
time.
reads only one row of switches at a
211
I/O Devices-Keyboards
 The row address and column output can be used for encoding, or
circuitry can be used to give a different encoding.
 Rollover (Ex: if you press ‘a’ and then press ‘b’ before releasing ‘a’).
 n-key rollover- rollover keys are sensed, put on a stack, and
transmitted in sequence as keys are released.
212
I/O Devices-LEDs
 Light emitting diodes (LEDs)- provides status information.
 A resistor is connected between the output pin and the LED to
absorb the voltage difference between the digital output voltage
the 0.7 V drop across the LED.
 When the digital output goes to 0, the LED voltage is in the
and
device’s off region and the LED is not on.
213
I/O Devices-Displays
 A display device may be either directly driven or driven from a
frame buffer.
214
I/O Devices-Displays
 A single-digit display typically consists of seven segments; each
segment may be either an LED or a liquid crystal display (LCD)
element.
 The digit input is used to choose which digit is currently being
updated, and the selected digit activates its display elements based
on the current data value.
 The display’s driver is responsible for repeatedly scanning
through the digits and presenting the current value of each to the
display.
215
I/O Devices-Displays
 A frame buffer is a RAM that is attached to the system bus.
 The microprocessor writes values into the frame buffer in
whatever order is desired.
 The pixels in the frame buffer are generally written to the display
in raster order.
Many large displays are built using LCD. Each pixel in the display
formed by a single liquid crystal.
 Early LCD panels were called passive matrix because they relied
on a two-dimensional grid of wires to address the pixels.
is
216
I/O Devices-Displays
Modern LCD panels use an active matrix system that puts a
transistor at each pixel to control access to the LCD.
 Active matrix displays provide higher contrast and a higher-
quality display.
217
I/O Devices-Touchscreens
A touchscreen is an input device overlaid on an output device.
 The touchscreen registers the position of a touch to its surface.
 By overlaying this on a display, the user can react to information
shown on the display.
The two most common types of touchscreens are resistive and
capacitive.
A resistive
position.
touchscreen uses a two-dimensional voltmeter to sense
218
I/O Devices-Touchscreens
219
I/O Devices-Touchscreens
 The touchscreen consists of two conductive sheets separated by
spacer balls.
 The top conductive sheet is flexible so that it can be pressed to
touch the bottom sheet.
 A voltage is applied across the sheet; its resistance causes a
voltage gradient to appear across the sheet.
 The top sheet samples the conductive sheet’s applied voltage at
the contact point.
 An analog/digital converter is used to measure the voltage and
resulting position.
220
I/O Devices-Touchscreens
 The touchscreen alternates between x and y position sensing by
alternately applying horizontal and vertical voltage gradients.
221
Component Interfacing- Memory
 To build a memory that is wider than we can buy on a single chip
(by placing RAMs in parallel-32 bits , 64 bits etc)
222
Component Interfacing- Device
 I/O devices are designed to interface directly to a particular bus.
forming glueless interfaces.
 Glue logic is required when a device is connected to a bus for
which it is not designed.
 An I/O device typically requires a much smaller range of
addresses than a memory.
 Additional logic is required
device registers.
to cause the bus to read and write the
223
Component Interfacing- Device
224
Component Interfacing- Device
 The device has four registers that can be read and written by
presenting the register number on the regid pins, asserting R/W as
required, and reading or writing the value on the regval pins.
 To interface to the bus, the bottom two bits of the address are used
to refer to registers within the device, and the remaining bits are
used to identify the device itself.
The top bits of the address are sent to a comparator for testing
against the device address.
The device’s address can be set with switches to allow the
address to be easily changed.
Component Interfacing- Device
 When the bus address matches the device’s, the result is used to
enable a transceiver for the data pins.
 The comparator’s output is also used to modify the R/W signal.
226
An architecture is a set of elements and the relationships between them that
together form a single unit.
The architecture of an embedded computing system is the blue-print for
implementing that system.
The architecture of an embedded computing system includes both
hardware and software elements.
•
•
•
Hardware:
Hardware architecture of an embedded system is more obvious
manifestation that you can touch it and feel.
CPU:
There are many different architectures and even within an architecture we can
select between models that vary in clock speed, integrated peripherals and so
on.
The choice of the CPU cannot be made considering the software that will
execute on the machine.
•
•
Bus:
• In applications that make intensive use of the bus
due to I/O or other data traffic, the bus may be more of a
limiting factor than the CPU.
Attention must be paid to the required data bandwidths to be sure that
the bus can handle the traffic.
•
Memory:
The ratio of ROM to RAM and selection of DRAM versus SRAM can have
a significant influence on the cost of the system.
The speed of memory will play a large part in determining
system performance
•
•
I/O devices:
networking, sensors, actuators, etc.
•
Functional description must
pieces:
 division among people;
 conceptual organization;
 performance;
 testability;
 maintenance.
be broken into
Hardware and software are intimately related:
 software doesn’t run without hardware;
 how much hardware you need is determined by the
software requirements:
 speed;
 memory.
 Designed by CPU manufacturer or others.
 Includes CPU, memory, some I/O devices.
 May include prototyping section.
 CPU manufacturer often gives out evaluation board netlist---
can be used as starting point for your custom board design.
 Programmable logic devices (PLDs) provide
low/medium density logic.
 Field-programmable gate arrays (FPGAs)
provide more logic and multi-level logic.
 Application-specific integrated circuits (ASICs) are
manufactured for a single purpose.
 Advantages:
 cheap and easy to get;
 rich and familiar software environment.
 Disadvantages:
 requires a lot of hardware resources;
 not well-adapted to real-time.
high-speed bus
ctrl
low-speed bus
bus
interface
device
bus
interface
intr
CPU bus
timers
device
memory
CPU
DMA
controller
The CPU provides basic computational facilities.
RAM is used for program storage.
ROM holds the boot program.
A DMA controller provides DMA capabilities.
Timers are used by the operating system for a variety purposes.




of

A high speed bus connected to the CPU bus through a bridge, allows fast
devices to communicate efficiently with the rest of the system.
A low speed bus provides an inexpensive way to connect simpler devices
and may be necessary for backward compatibility as well.


 PCI: standard for high-speed interfacing
 33 or 66 MHz.
 PCI Express.
 USB (Universal Serial Bus), Firewire (IEEE
1394): relatively low-cost serial interface
with high speed.
 IBM PC uses BIOS (Basic I/O System) to
implement low-level functions:
 boot-up;
 minimal device drivers.
 BIOS has become a generic term
lowest-level system software.
for the
 StrongARM system includes:
 CPU chip (3.686 MHz clock)
 system control module (32.768
 Real-time clock;
 operating system timer
 general-purpose I/O;
 interrupt controller;
 power manager controller;
 reset controller.
kHz clock).
Strong ARM SA-1100
 A real time clock.
 An operating system timer
.
 28 general-purpose I/Os(GPIOs).
 An interrupt controller
.
 A power manager controller
.
 A reset controller that handles resetting
processor.
the
 Challenges:
 target system may be hard to observe;
 target may be hard to control;
 may be hard to generate realistic inputs;
 setup sequence may be complex.
 Use a host system
target system:
to prepare software for
target
system
host system
serial line
Load the programs into the target,
Start and stop program execution on the target, and
Examine memory and CPU registers.
•
•
•
 Cross compiler:
 compiles code on host for target system.
 Cross debugger:
 displays target state, allows target system to be controlled.
 A monitor program residing on the target
provides basic debugger functions.
 Debugger should have a minimal footprint
in memory.
 User program must be careful not to destroy debugger
program, but , should be able to recover from some damage
caused by user code.
 A breakpoint allows the user to stop
execution, examine system state, and change
state.
 Replace the breakpointed instruction with a
subroutine call to the monitor program.
0x400
0x404
0x408
0x40c
MUL r4,r6,r6
ADD r2,r2,r4
ADD r0,r0,#1
B loop
0x400
0x404
0x408
0x40c
MUL r4,r6,r6
ADD r2,r2,r4
ADD r0,r0,#1
BL bkpoint
uninstrumented code code with breakpoint
 Save registers.
 Allow user to examine machine.
 Before returning, restore system state.
 Safest way to execute the instruction is to
replace it and execute in place.
 Put another breakpoint after the replaced breakpoint to
allow restoring the original breakpoint.
 A microprocessor in-circuit emulator is a
specially-instrumented microprocessor.
 Allows you to stop execution, examine CPU
state, modify registers.
 A logic analyzer is an array of low-grade
oscilloscopes:
System Data Samples
system clock
state or
timing mode
keypad
display
clock
gen
sample
memory
microprocessor
vector
address
controller
UUT
 An instruction level simulation may be used
to debug code running on the CPU.
 A cycle-level simulation tool may be used for faster
simulation of parts of the system.
 A hardware/software co-simulator may be used to simulate
various parts of the system at different level of detail.
 Designing with microprocessors.
 Development and debugging.
 System-level performance analysis.
 Example: alarm clock
button
hour minute
set
alarm
set
time
light
Alarm
ready
PM
Alarm off
Alarm on
 Set time: hold set time, depress
hour
, minute.
 Set alarm time: hold set alarm, depress
hour
, minute.
 Turn alarm on/off: depress alarm on/off.
name
purpose
inputs
outputs
functions
alarm clock
24-hour digital clock with one alarm
set time, set alarm, hour, minute, alarm on/off
four-digit display, PM indicator, alarm ready, buzzer keep time, set
time, set alarm, turn alarm on/off, activate buzzer by alarm
hours and digits, no seconds; not high precision
consumer product
performance
manufacturing cost
power
physical
size/weight
AC
fits on stand
1 1 1 1
1
1
1
1
Speaker*
Buttons*
Lights* Display Mechanism
set-alarm(): boolean
alarm-off(): boolean
Speaker*
buzz()
Buttons*
set-time(): boolean
alarm-on(): boolean
minute(): boolean hour():
boolean
Lights*
digit-val() digit-scan()
alarm-on-light() PM-
light()
Display
time[4]: integer
alarm-indicator: boolean
PM-indicator: boolean
set-time()
alarm-light-on() alarm-
light-off() PM-light-on()
PM-light-off()
Mechanism
Seconds: integer
PM: boolean
tens-hours, ones-hours: boolean
tens-minutes, ones-minutes: boolean alarm-ready:
boolean
alarm-tens-hours, alarm-ones-hours:
boolean
alarm-tens-minutes, alarm-ones-minutes:
boolean
scan-keyboard()
update-time()
update seconds
with rollover
display.set-time(current time)
F
F
Rollover?
Time >= alarm and alarm-on?
T
T
update hh:mm
with rollover
alarm.buzzer(true)
PM->AM
AM->PM
PM=true PM=false
Set-time and
not set-alarm
and hours
compute button activations
Alarm-on
Increment time
tens w. rollover and
AM/PM
alarm-ready=
true
Alarm-off
alarm-ready=
false alarm.buzzer(false)
Increment time
ones w. rollover and
AM/PM
Set-time and not set-
alarm and minutes
save button
states
 The system has both periodic and aperiodic
components-the current time must obviously be updated periodically, and the
button commands occur
occasionally
 It seems reasonable to have the following two major
software components:
 An interrupt driven routine can update the current time.
The current time will be kept in a variable in memory. A
timer can be used to interrupt periodically and update
the time.
 A foreground program can poll the buttons and execute their commands.
Since buttons are changed at a relatively slow rate, it makes no sense to add
the hardware required to connect the buttons to interrupts.
The foreground code will be implementedas a while
loop:
While (TRUE){
Read buttons(button values);/*read inputs*/
Process command(button values);/*do
commands*/
Check alarm();/*decide whether to turn on the alarm*/
}
The loop first reads the button using first
command
The buttons will remain depressed for many sample
periods since the sample rate is much faster than any person
can push and release buttons.
•
•
We want to make sure that clock responds
•
to this as a single depression of the button, not
one depression per sample interval.
 Component testing:
 test interrupt code on the platform;
 can test foreground program using a mock-up.
 System testing:
 relatively few components to integrate;
 check clock accuracy;
 check recognition of buttons, buzzer, etc.
 As shown in the figure this can be done
using a simple edge detection
System-level performance analysis
 involves much more than the CPU.
 any part of the system can affect total system performance.
 CPU provides an upper bound on performance, but any other part
of the system can slow down the CPU.
 Ex: Move data from memory to the CPU
227
System-level performance analysis
 Steps involved in getting the data from memory to the CPU,
 read from the memory
 transfer over the bus to the cache; and
 transfer from the cache to the CPU
 The time required to transfer from the cache to the CPU is
included in the instruction execution time, but the other two times
are not.
 Basic measure of performance- bandwidth: the rate at which we
can move data.
228
System-level performance analysis
 Another way to measure performance is in units of clock cycles.
 But, different parts of the system will run at different clock rates.
 Bandwidth comes up when we are transferring large blocks of
data.
 Ex: Bandwidth provided by only one system component, the bus.
 Image of 320 x 240 pixels, with each pixel composed of 3 bytes of
data.
 Grand total of 230,400 bytes of data.
 If images are video frames-1/30 s
229
System-level performance analysis
 Assume that we can transfer one byte of data every microseconds-
Bus speed of 1 MHz.
 230400 bytes require 230400 μs=0.23 s to transfer one frame.
 1/30 s=0.033 s allotted to the data transfer of one frame.
 Therefore, we would have to increase the transfer rate by 7x to
satisfy our performance requirement.
 Bandwidth can be increased in two ways,
 increase the clock rate of the bus.
 increase the amount of data transferred per clock cycle.
230
System-level performance analysis
 Let P- bus clock period
 W- bus width in units of bytes
 T- units of bus cycles
 t- real time
 t=TP
231
System-level performance analysis
 A basic bus transfer transfers a W-wide set of bytes.
 The data transfer itself takes D clock cycles.
 Ideally, D=1, but a memory that introduces wait states is one
example of a transfer that could require D>1 cycles.
232
System-level performance analysis
 Addresses, handshaking and other activities constitute overhead
that may occur before (O1) or after (O2) the data.
 For simplicity, we will lump the overhead into O=O1+O2.
 The total transfer time for N bytes of data is given by,
 A burst transaction performs B transfers of W bytes each. Each of
those transfers will require D clock cycles.
 The bus also introduces O cycles of overhead per burst.
233
System-level performance analysis
 This gives,
 The width of the memory determines the number of bits we can
read from the memory in one cycle- Data bandwidth.
234
System-level performance analysis
 We may also change the format of our data to accommodate the
memory components.
235
System-level performance analysis
 Memory chips do not come in extremely wide aspect ratios.
 By choosing chips with the right aspect ratio, we can build a
memory system with the total amount of storage that we want
that presents the data with that we want.
and
 SIMMs or DIMMs are wide but generally come in fairly standard
widths.
 Time required to read or write a memory is important in
determining the performance.
 Page modes operate similar to that of burst modes in buses.
236
System-level performance analysis
 If the data type do not fit naturally into the width of the memory.
 Ex: To store color video pixels (24-bit color values-Red, Green and
Blue) in our memory (24-bit wide memory or 8-bit wide memory or
32-bit wide memory )
 If we have a 32-bit-wide memory, we have two main choices:
 We could waste one byte of each transfer or use that byte to store
unrelated data.
237
System-level performance analysis
 We could pack the pixels. The first read would get all of the first
pixel and one byte of the second pixel; the second transfer would get
the last two bytes of the second pixel and the first two bytes of the
third pixel; and so forth.
 The total number of accesses required to read E data elements of
w bits each out of a memory of widthW is:
238
Parallelism
 Computer systems have multiple components.
 When different components of the system operate in parallel, we
can get more work done in a given amount of time.
 Ex: Direct memory access- DMA was designed to off-load memory
transfers from the CPU. The CPU can do other useful work while the
DMA transfer is running.
239
Parallelism
240
Parallelism
241
Parallelism
 The top timing diagram shows activity in the system when the CPU
first performs some setup operations, then waits for the bus transfer
to complete, then resumes its work.
 In the bottom timing diagram, once the first transfer is done, the
CPU can start working on that data. Meanwhile, thanks to DMA, the
second transfer happens on the bus at the same time.
 Once that data arrives and the first calculation is finished, the CPU
can go on to the second part of the computation.
 The result is that the entire computation finishes considerably
earlier than in the sequential case.
242
Summary
 Definition of an embedded system
History of embedded systems
Embedded system design process
Formalism of embedded system design
CPU – Programming Input and Output,
and Performance
Bus, Power Consumption
Supervisor modes, Exceptions and Traps
Coprocessors
Memory System Mechanism
243

More Related Content

Similar to UNIT 3.pptx

8257 DMA Controller
8257 DMA Controller8257 DMA Controller
8257 DMA ControllerShivamSood22
 
Module-3 The embedded computing platfrom and program design.pdf
Module-3 The embedded computing platfrom and program design.pdfModule-3 The embedded computing platfrom and program design.pdf
Module-3 The embedded computing platfrom and program design.pdfSitamarhi Institute of Technology
 
Hcs Topic 2 Computer Structure V2
Hcs Topic 2  Computer Structure V2Hcs Topic 2  Computer Structure V2
Hcs Topic 2 Computer Structure V2ekul
 
Hcs Topic 2 Computer Structure V2
Hcs Topic 2  Computer Structure V2Hcs Topic 2  Computer Structure V2
Hcs Topic 2 Computer Structure V2Kyle
 
Hcs Topic 2 Computer Structure V2
Hcs Topic 2  Computer Structure V2Hcs Topic 2  Computer Structure V2
Hcs Topic 2 Computer Structure V2Naruin
 
The primary purpose of memory interfacing is to facilitate the transfer of da...
The primary purpose of memory interfacing is to facilitate the transfer of da...The primary purpose of memory interfacing is to facilitate the transfer of da...
The primary purpose of memory interfacing is to facilitate the transfer of da...Sindhu Mani
 
Topic 1 Data Representation
Topic 1 Data RepresentationTopic 1 Data Representation
Topic 1 Data RepresentationNaruin
 
Chap2 comp architecture
Chap2 comp architectureChap2 comp architecture
Chap2 comp architectureraksharao
 
8237 dma controller
8237 dma controller8237 dma controller
8237 dma controllerTech_MX
 
IS 139 Lecture 5
IS 139 Lecture 5IS 139 Lecture 5
IS 139 Lecture 5wajanga
 
Computer structurepowerpoint
Computer structurepowerpointComputer structurepowerpoint
Computer structurepowerpointhamid ali
 
Bus structure in Computer Organization.pdf
Bus structure in Computer Organization.pdfBus structure in Computer Organization.pdf
Bus structure in Computer Organization.pdfmvpk14486
 

Similar to UNIT 3.pptx (20)

CC61619 (1)
CC61619 (1)CC61619 (1)
CC61619 (1)
 
Ca 2 note mano
Ca 2 note manoCa 2 note mano
Ca 2 note mano
 
DMA presentation [By- Digvijay]
DMA presentation [By- Digvijay]DMA presentation [By- Digvijay]
DMA presentation [By- Digvijay]
 
8257 DMA Controller
8257 DMA Controller8257 DMA Controller
8257 DMA Controller
 
01buses ver2_
01buses  ver2_01buses  ver2_
01buses ver2_
 
Module-3 The embedded computing platfrom and program design.pdf
Module-3 The embedded computing platfrom and program design.pdfModule-3 The embedded computing platfrom and program design.pdf
Module-3 The embedded computing platfrom and program design.pdf
 
dem.pptx
dem.pptxdem.pptx
dem.pptx
 
Hcs Topic 2 Computer Structure V2
Hcs Topic 2  Computer Structure V2Hcs Topic 2  Computer Structure V2
Hcs Topic 2 Computer Structure V2
 
Hcs Topic 2 Computer Structure V2
Hcs Topic 2  Computer Structure V2Hcs Topic 2  Computer Structure V2
Hcs Topic 2 Computer Structure V2
 
Hcs Topic 2 Computer Structure V2
Hcs Topic 2  Computer Structure V2Hcs Topic 2  Computer Structure V2
Hcs Topic 2 Computer Structure V2
 
The primary purpose of memory interfacing is to facilitate the transfer of da...
The primary purpose of memory interfacing is to facilitate the transfer of da...The primary purpose of memory interfacing is to facilitate the transfer of da...
The primary purpose of memory interfacing is to facilitate the transfer of da...
 
Topic 1 Data Representation
Topic 1 Data RepresentationTopic 1 Data Representation
Topic 1 Data Representation
 
Direct Memory Access
Direct Memory AccessDirect Memory Access
Direct Memory Access
 
Chap2 comp architecture
Chap2 comp architectureChap2 comp architecture
Chap2 comp architecture
 
8237 dma controller
8237 dma controller8237 dma controller
8237 dma controller
 
IS 139 Lecture 5
IS 139 Lecture 5IS 139 Lecture 5
IS 139 Lecture 5
 
Computer structurepowerpoint
Computer structurepowerpointComputer structurepowerpoint
Computer structurepowerpoint
 
Direct Memory Access.pdf
Direct Memory Access.pdfDirect Memory Access.pdf
Direct Memory Access.pdf
 
12429908.ppt
12429908.ppt12429908.ppt
12429908.ppt
 
Bus structure in Computer Organization.pdf
Bus structure in Computer Organization.pdfBus structure in Computer Organization.pdf
Bus structure in Computer Organization.pdf
 

More from ssuser4ca1eb

Von Neuman vs Harward.docx
Von Neuman vs Harward.docxVon Neuman vs Harward.docx
Von Neuman vs Harward.docxssuser4ca1eb
 
UNIT I_Introduction.pptx
UNIT I_Introduction.pptxUNIT I_Introduction.pptx
UNIT I_Introduction.pptxssuser4ca1eb
 
Ch01_Intro_to_Embedded_Systems.pptx
Ch01_Intro_to_Embedded_Systems.pptxCh01_Intro_to_Embedded_Systems.pptx
Ch01_Intro_to_Embedded_Systems.pptxssuser4ca1eb
 
Lec01_Course_Overview.ppt
Lec01_Course_Overview.pptLec01_Course_Overview.ppt
Lec01_Course_Overview.pptssuser4ca1eb
 

More from ssuser4ca1eb (7)

lightning_go.pptx
lightning_go.pptxlightning_go.pptx
lightning_go.pptx
 
go.ppt
go.pptgo.ppt
go.ppt
 
Von Neuman vs Harward.docx
Von Neuman vs Harward.docxVon Neuman vs Harward.docx
Von Neuman vs Harward.docx
 
UNIT I_Introduction.pptx
UNIT I_Introduction.pptxUNIT I_Introduction.pptx
UNIT I_Introduction.pptx
 
13009690.ppt
13009690.ppt13009690.ppt
13009690.ppt
 
Ch01_Intro_to_Embedded_Systems.pptx
Ch01_Intro_to_Embedded_Systems.pptxCh01_Intro_to_Embedded_Systems.pptx
Ch01_Intro_to_Embedded_Systems.pptx
 
Lec01_Course_Overview.ppt
Lec01_Course_Overview.pptLec01_Course_Overview.ppt
Lec01_Course_Overview.ppt
 

Recently uploaded

Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxvipinkmenon1
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxPoojaBan
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineeringmalavadedarshan25
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝soniya singh
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZTE
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLDeelipZope
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learningmisbanausheenparvam
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 

Recently uploaded (20)

Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptx
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptx
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineering
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCL
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learning
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 

UNIT 3.pptx

  • 1. The CPU Bus  Bus based computer systems created using microprocessors, I/O devices and memory components.  A computer system encompasses much more than the CPU; it also includes memory and I/O devices. The bus is the mechanism by which the CPU communicates with memory and devices.  A bus is, at a minimum, a collection of wires, but the bus also devices defines a protocol by which the CPU, memory, and communicate. 162
  • 2. Bus Protocols  Basic building block of most protocols is the four-cycle handshake.  The handshake uses a pair of wires dedicated to the handshake: enq (meaning enquiry) and ack (meaning acknowledge). Extra wires are used for the data transmitted during the handshake. 163
  • 3. Bus Protocols  The four cycles are described below,  Device 1 raises its output to signal device 2 that it should get ready to listen an enquiry, which tells the data.  When device 2 is ready to receive, it raises its output an acknowledgment. At this point, devices 1 and 2 can or receive. to signal transmit  Once the data transfer is complete, device 2 lowers its output, signaling that it has received the data.  After seeing that output. ack has been released, device 1 lowers its 164
  • 5. The CPU Bus  Bus- set of related wires or bundle (address wires) or a protocol for communicating between components.  The fundamental bus operations are reading and writing. 166
  • 6. The CPU Bus  Clock provides synchronization to the bus components.  R/W is true when the bus is reading and false when the bus is writing.  Address is an a-bit bundle of signals that transmits the address for an access.  Data is an n-bit bundle of signals that can carry data to or from the CPU  Data ready signals when the values on the data bundle are valid. 167
  • 7. The CPU Bus  All transfers on this basic bus are controlled by the CPU—the CPU can read or write a device or memory, but devices or memory cannot initiate a transfer. R/W and address lines are unidirectional signals.  The behavior of a bus is most often specified as a timing diagram.  A timing diagram shows how the signals on a bus vary over time.  A’s value is known at all times, so it is shown as a standard waveform that changes between zero and one.  B and C alternate between changing (does not have a stable value) and stable (Ex: address bus) state.  Changing signals should not be used for computation. 168
  • 8. The CPU Bus  Timing constraints- Ensures that signals go to their proper values at proper times. 169
  • 9. The CPU Bus  During a read, the external device or memory is sending a value on the data lines. lines, while during a write the CPU is controlling the data 170
  • 10. The CPU Bus-Read Operation  The data ready signal allows the bus to be connected to devices that are slower than the bus. External device need not immediately assert data ready.  The cycles between the minimum time at which data can be asserted are known as wait states.  Wait states are commonly used to connect slow, inexpensive memories to buses. 171
  • 11. The CPU Bus- wait state on a read operation 172
  • 12. The CPU Bus-Read Operation  In the burst read transaction, the CPU sends one address but receives a sequence of data values. Add an extra line to the bus, called burst (signals when a transaction is actually a burst). Releasing the burst signal tells the device that enough data has been transmitted. To stop receiving data after the end of data 4, the CPU releases the burst signal at the end of data 3 since the device requires some time to recognize the end of the burst. Those values come from successive memory locations starting at the given address. 173
  • 13. The CPU Bus-Read Operation 174
  • 14. The CPU Bus-Read Transaction  State diagram represents the transition of control signals. 175
  • 15. The CPU Bus-Multiplexed Address/Data line Some buses use multiplexed address and data. Additional control lines are provided to tell whether the value on the address/data lines is an address or data. Typically, the address comes first on the combined address/data lines, followed by the data. The address can be held in a register until the data arrive so that both can time. be presented to the device (such as a RAM) at the same 176
  • 16. The CPU Bus-Multiplexed Address/Data line 177
  • 17. Direct Memory Access (DMA) Standard bus transactions require the CPU to be in the middle of every read and write transaction. However, there are certain types of data transfers in which the CPU does not need to be involved. For example, a high-speed I/O device may want to transfer a block of data into memory.  This capability requires that some unit other than the CPU be able to control operations on the bus.  Direct memory access (DMA) is a bus operation that allows reads and writes not controlled by the CPU. 178
  • 18. Direct Memory Access (DMA) A DMA transfer is controlled by a DMA controller, which requests control of the bus from the CPU. After gaining control, the DMA controller performs read and write operations directly between devices and memory. 179 Department of Electronics Engineering, MIT , India
  • 19. Direct Memory Access (DMA)  The DMA requires the CPU to provide two additional bus signals:  The bus request is an input to the CPU through which DMA controllers ask for ownership of the bus.  The bus grant signals that the bus has been granted to the DMA controller  A device that can initiate its own bus transfer is known as a bus master.  The DMA controller uses these two signals to gain control of the bus using a classic four-cycle handshake. 180
  • 20. Direct Memory Access (DMA) The bus request is asserted by the DMA controller when it wants to control the bus, and the bus grant is asserted by the CPU when the bus is ready.  The CPU will finish all pending bus transactions before granting control of the bus to the DMA controller. When it does grant control, it stops driving the other bus signals: R/W , address, and so on.  Upon becoming bus master, the DMA controller has control of all bus signals (except, of course, for bus request and bus grant). 181
  • 21. Direct Memory Access (DMA)  Once the DMA controller is bus master, it can perform reads and writes using the same bus protocol as with any CPU-driven bus transaction.  Memory and devices do not know whether a read or write is performed by the CPU or by a DMA controller.  After the transaction is finished, the DMA controller returns the bus to the CPU by de-asserting the bus request, causing the CPU to de-assert the bus grant.  The CPU controls the DMA operation through registers in the DMA controller. 182
  • 22. Direct Memory Access (DMA)  A typical DMA controller includes the following three registers: A starting address register specifies where the transfer is to begin. A length register specifies the number of words to be transferred. A status register allows the DMA controller to be operated by the CPU. 183
  • 23. Direct Memory Access (DMA)  The CPU initiates a DMA transfer by setting the starting address and length registers appropriately and then writing the status register to set its start transfer bit. After the DMA operation is complete, the DMA controller interrupts the CPU to tell it that the transfer is done. What is the CPU doing during a DMA transfer?  If the CPU has enough instructions and data in the cache and registers, it may be able to continue doing useful work for quite some time. But once the CPU needs the bus, it stalls until the DMA controller returns bus mastership to the CPU. 184
  • 24. Direct Memory Access (DMA) 185
  • 25. Direct Memory Access (DMA)  To prevent the CPU from idling for too long, most DMA controllers implement modes that occupy the bus for only a few cycles at a time.  For example, the transfer may be made 4, 8, or 16 words at a time. 186
  • 26. System Bus Configurations  A microprocessor system often has more than one bus.  High-speed devices may be connected to an high-performance bus, while lower-speed devices are connected to a different bus.  A small block of logic known as a bridge allows the buses to connect to each other. 187
  • 27. System Bus Configurations  There are several good reasons to use multiple buses and bridges:  Higher-speed buses may provide wider data connections.  A high-speed bus usually requires more expensive circuits and connectors. The cost of low-speed devices can be held down using a lower-speed, lower-cost bus.  The bridge may allow the buses to operate independently, thereby providing some parallelism in I/O operations.  The bridge serves as a protocol translator between the two bridges as well. by 188
  • 28. AMBA BUS in ARM  ARM has created a separate bus specification for single-chip systems.  The AMBA bus [ARM99A] supports CPUs, memories, and peripherals integrated in a system-on-silicon. The AMBA specification includes two buses. The AMBA high- performance bus (AHB) is optimized for high-speed transfers and is directly connected to the CPU.  It supports several high-performance features: pipelining, burst transfers, split transactions, and multiple bus masters. 189
  • 29. AMBA BUS in ARM  A bridge can be used to connect the AHB to an AMBA peripherals bus (APB). It consumes relatively little power.  The AHB assumes that all peripherals act as slaves.  It does not perform pipelined operations, which simplifies the bus logic. 190
  • 30. AMBA BUS in ARM 191
  • 31. Memory Devices-Organization  We need to understand the pinouts of these memories and how values are read and written.  Characterize a memory by its capacity (Ex: 256 MB).  Memories can be of same capacity with different data width. 226  64 M x 4-bit array with a maximum address of address.  32 M x 8-bit array with a maximum address of addresses. different 225 different  The height/width ratio of a memory is known as its aspect ratio. 192
  • 32. Memory Devices-Organization  Internally, the data are stored in a 2D array of memory cells.  The n-bit address received by the chip is split into a row and a column address (n=r+c) . 193
  • 33. Memory Devices-Organization  Enable signal controls the tri-stating of data onto the memory’s pins.  A read/write (R/W) signal on read/write memories controls the direction of data transfer; memory chips do not typically have separate read and write data pins. 194
  • 34. Random-Access Memories  Random-access memories can be both read and written.  They are called random access because, unlike magnetic disks, addresses can be read in any order.  dynamic RAM (DRAM)  DRAM is very dense; however, require that its values be refreshed periodically since the values inside the memory cells decay over time.  The dominant form of dynamic RAM today is synchronous DRAMs (SDRAMs), which uses clocks to improve DRAM performance. 195
  • 35. Random-Access Memories  SDRAMs use Row Address Select (RAS) and Column Address Select (CAS) signals to break the address into two parts, which select the proper row and column in the RAM array.  Signal transitions are relative to the SDRAM clock, which allows the internal SDRAM operations to be pipelined.  SDRAMs use a separate refresh signal to control refreshing. DRAMs has to be refreshed roughly once per millisecond.  Rather than refresh the entire memory at once, DRAMs refresh part of the memory at a time. 196
  • 37. Random-Access Memories  When a section of memory is being refreshed, it cannot be accessed until the refresh is complete.  The memory refresh occurs fairly few seconds so that each section is refreshed every few microseconds.  SDRAMs include registers that control the mode in which the SDRAM operates. SDRAMs support burst modes that allow several sequential addresses to be accessed by sending only one address.  Interleaved mode exchanges pairs of bytes. Double-data rate (DDR) SDRAMs, DDR2 and DDR3- faster synchronous DRAMs-more operations per clock cycle. 198
  • 38. SIMMs and DIMMs  Memory for PCs is generally purchased as single in-line memory modules (SIMMs) or double in-line memory modules (DIMMs).  A SIMM or DIMM is a small circuit board that fits into a standard memory socket.  A DIMM has two sets of leads compared to the SIMM’s one.  Memory chips are soldered to the circuit board to supply the desired memory. 199
  • 39. Read-Only Memories  Read-only memories (ROMs)-preprogrammed with fixed data.  less sensitive to radiation induced errors.  Several types of ROM:  factory-programmed ROM (mask-programmed ROM)  field-programmable ROM (Flash memory-electrically erasable)  Flash memory uses standard system voltage for erasing and programming, allowing it to be reprogrammed inside a typical system.  Modern devices allow memory to be erased in blocks.  Block protection is also possible (boot-block flash) 200
  • 40. I/O Devices-Timers and Counters Timers and counters are distinguished by their use, not their logic. Both are built from adder logic with registers to hold the current value, with an increment input that adds one to the current register value.  Timer is incremented by a periodic signal (clock-to measure time intervals).  Counter is incremented by an asynchronous or occasional signal (to count the number of occurrences of some external event). 201
  • 41. I/O Devices-Timers and Counters  An n-bit counter/timer uses an n-bit register to store the current state of the count and an array of half subtractors to decrement the count when the count signal is asserted.  Combinational logic checks when the count equals zero; the done output signals the zero count. It is often useful to be able to control 2n the time-out, rather than require exactly events to occur. For this purpose, a reset register provides the value with which the count register is to be loaded.  The counter/timer provides logic to load the reset register. 202
  • 42. I/O Devices-Timers and Counters 203
  • 43. I/O Devices-Timers and Counters  Most counters provide both cyclic and acyclic modes of operation.  In the cyclic mode, once the counter reaches the done state, it is automatically reloaded and the counting process continues.  In acyclic mode, the counter/timer waits for an explicit signal from the microprocessor to resume counting. 204
  • 44. I/O Devices-Watchdog Timer  I/O device used for internal operation of the system.  Watchdog timer is connected into the CPU bus and also to the CPU’s reset line.  The CPU’s software is designed to periodically reset the watchdog timer, before the timer ever reaches its time-out limit.  If the watchdog timer ever does reach that limit, its time-out action is to reset the processor.  This event occurs whenever there is an software flaw or hardware problem that has caused the CPU to misbehave. 205
  • 46. I/O Devices-ADC and DAC  Analog/Digital (A/D) and Digital/Analog (D/A) convertors are often used to interface non digital devices to embedded systems.  Analog/digital conversion requires sampling the analog input before converting it to digital form.  A control signal causes the A/D converter to take a sample and digitize it.  Fixed time and variable time converters provide a done signal so that the microprocessor knows when the value is ready. 207
  • 47. I/O Devices-ADC and DAC  A data port allows A/D registers to be read and written, and a clock input tells when to start the next conversion. 208
  • 48. I/O Devices-Keyboards  A keyboard is basically an array of switches, but it may include some internal logic to help simplify the interface to the microprocessor.  A switch uses a mechanical contact to make or break an electrical circuit. The major problem with mechanical switches is that they bounce .  When the switch is depressed by pressing on the button attached to the switch’s arm, the force of the depression causes the contacts to bounce several times until they settle down. 209
  • 49. I/O Devices-Keyboards  If this is not corrected, it will appear that the switch has been pressed several times, giving false inputs.  A hardware debouncing circuit can be built using a one-shot timer.  Software can also be used to debounce switch inputs. 210
  • 50. I/O Devices-Keyboards  PC keyboards contains a microprocessor to preprocess button inputs.  PC keyboards typically use a 4-bit microprocessor to provide the interface between the keys and the computer.  The microprocessor can provide debouncing. An encoded keyboard uses some currently being depressed. code to represent which switch is  A scanned keyboard array time. reads only one row of switches at a 211
  • 51. I/O Devices-Keyboards  The row address and column output can be used for encoding, or circuitry can be used to give a different encoding.  Rollover (Ex: if you press ‘a’ and then press ‘b’ before releasing ‘a’).  n-key rollover- rollover keys are sensed, put on a stack, and transmitted in sequence as keys are released. 212
  • 52. I/O Devices-LEDs  Light emitting diodes (LEDs)- provides status information.  A resistor is connected between the output pin and the LED to absorb the voltage difference between the digital output voltage the 0.7 V drop across the LED.  When the digital output goes to 0, the LED voltage is in the and device’s off region and the LED is not on. 213
  • 53. I/O Devices-Displays  A display device may be either directly driven or driven from a frame buffer. 214
  • 54. I/O Devices-Displays  A single-digit display typically consists of seven segments; each segment may be either an LED or a liquid crystal display (LCD) element.  The digit input is used to choose which digit is currently being updated, and the selected digit activates its display elements based on the current data value.  The display’s driver is responsible for repeatedly scanning through the digits and presenting the current value of each to the display. 215
  • 55. I/O Devices-Displays  A frame buffer is a RAM that is attached to the system bus.  The microprocessor writes values into the frame buffer in whatever order is desired.  The pixels in the frame buffer are generally written to the display in raster order. Many large displays are built using LCD. Each pixel in the display formed by a single liquid crystal.  Early LCD panels were called passive matrix because they relied on a two-dimensional grid of wires to address the pixels. is 216
  • 56. I/O Devices-Displays Modern LCD panels use an active matrix system that puts a transistor at each pixel to control access to the LCD.  Active matrix displays provide higher contrast and a higher- quality display. 217
  • 57. I/O Devices-Touchscreens A touchscreen is an input device overlaid on an output device.  The touchscreen registers the position of a touch to its surface.  By overlaying this on a display, the user can react to information shown on the display. The two most common types of touchscreens are resistive and capacitive. A resistive position. touchscreen uses a two-dimensional voltmeter to sense 218
  • 59. I/O Devices-Touchscreens  The touchscreen consists of two conductive sheets separated by spacer balls.  The top conductive sheet is flexible so that it can be pressed to touch the bottom sheet.  A voltage is applied across the sheet; its resistance causes a voltage gradient to appear across the sheet.  The top sheet samples the conductive sheet’s applied voltage at the contact point.  An analog/digital converter is used to measure the voltage and resulting position. 220
  • 60. I/O Devices-Touchscreens  The touchscreen alternates between x and y position sensing by alternately applying horizontal and vertical voltage gradients. 221
  • 61. Component Interfacing- Memory  To build a memory that is wider than we can buy on a single chip (by placing RAMs in parallel-32 bits , 64 bits etc) 222
  • 62. Component Interfacing- Device  I/O devices are designed to interface directly to a particular bus. forming glueless interfaces.  Glue logic is required when a device is connected to a bus for which it is not designed.  An I/O device typically requires a much smaller range of addresses than a memory.  Additional logic is required device registers. to cause the bus to read and write the 223
  • 64. Component Interfacing- Device  The device has four registers that can be read and written by presenting the register number on the regid pins, asserting R/W as required, and reading or writing the value on the regval pins.  To interface to the bus, the bottom two bits of the address are used to refer to registers within the device, and the remaining bits are used to identify the device itself. The top bits of the address are sent to a comparator for testing against the device address. The device’s address can be set with switches to allow the address to be easily changed.
  • 65. Component Interfacing- Device  When the bus address matches the device’s, the result is used to enable a transceiver for the data pins.  The comparator’s output is also used to modify the R/W signal. 226
  • 66. An architecture is a set of elements and the relationships between them that together form a single unit. The architecture of an embedded computing system is the blue-print for implementing that system. The architecture of an embedded computing system includes both hardware and software elements. • • • Hardware: Hardware architecture of an embedded system is more obvious manifestation that you can touch it and feel. CPU: There are many different architectures and even within an architecture we can select between models that vary in clock speed, integrated peripherals and so on. The choice of the CPU cannot be made considering the software that will execute on the machine. • •
  • 67. Bus: • In applications that make intensive use of the bus due to I/O or other data traffic, the bus may be more of a limiting factor than the CPU. Attention must be paid to the required data bandwidths to be sure that the bus can handle the traffic. • Memory: The ratio of ROM to RAM and selection of DRAM versus SRAM can have a significant influence on the cost of the system. The speed of memory will play a large part in determining system performance • • I/O devices: networking, sensors, actuators, etc. •
  • 68. Functional description must pieces:  division among people;  conceptual organization;  performance;  testability;  maintenance. be broken into
  • 69. Hardware and software are intimately related:  software doesn’t run without hardware;  how much hardware you need is determined by the software requirements:  speed;  memory.
  • 70.  Designed by CPU manufacturer or others.  Includes CPU, memory, some I/O devices.  May include prototyping section.  CPU manufacturer often gives out evaluation board netlist--- can be used as starting point for your custom board design.
  • 71.  Programmable logic devices (PLDs) provide low/medium density logic.  Field-programmable gate arrays (FPGAs) provide more logic and multi-level logic.  Application-specific integrated circuits (ASICs) are manufactured for a single purpose.
  • 72.  Advantages:  cheap and easy to get;  rich and familiar software environment.  Disadvantages:  requires a lot of hardware resources;  not well-adapted to real-time.
  • 74. The CPU provides basic computational facilities. RAM is used for program storage. ROM holds the boot program. A DMA controller provides DMA capabilities. Timers are used by the operating system for a variety purposes.     of  A high speed bus connected to the CPU bus through a bridge, allows fast devices to communicate efficiently with the rest of the system. A low speed bus provides an inexpensive way to connect simpler devices and may be necessary for backward compatibility as well.  
  • 75.  PCI: standard for high-speed interfacing  33 or 66 MHz.  PCI Express.  USB (Universal Serial Bus), Firewire (IEEE 1394): relatively low-cost serial interface with high speed.
  • 76.  IBM PC uses BIOS (Basic I/O System) to implement low-level functions:  boot-up;  minimal device drivers.  BIOS has become a generic term lowest-level system software. for the
  • 77.  StrongARM system includes:  CPU chip (3.686 MHz clock)  system control module (32.768  Real-time clock;  operating system timer  general-purpose I/O;  interrupt controller;  power manager controller;  reset controller. kHz clock).
  • 79.  A real time clock.  An operating system timer .  28 general-purpose I/Os(GPIOs).  An interrupt controller .  A power manager controller .  A reset controller that handles resetting processor. the
  • 80.  Challenges:  target system may be hard to observe;  target may be hard to control;  may be hard to generate realistic inputs;  setup sequence may be complex.
  • 81.  Use a host system target system: to prepare software for target system host system serial line
  • 82. Load the programs into the target, Start and stop program execution on the target, and Examine memory and CPU registers. • • •
  • 83.  Cross compiler:  compiles code on host for target system.  Cross debugger:  displays target state, allows target system to be controlled.
  • 84.  A monitor program residing on the target provides basic debugger functions.  Debugger should have a minimal footprint in memory.  User program must be careful not to destroy debugger program, but , should be able to recover from some damage caused by user code.
  • 85.  A breakpoint allows the user to stop execution, examine system state, and change state.  Replace the breakpointed instruction with a subroutine call to the monitor program.
  • 86. 0x400 0x404 0x408 0x40c MUL r4,r6,r6 ADD r2,r2,r4 ADD r0,r0,#1 B loop 0x400 0x404 0x408 0x40c MUL r4,r6,r6 ADD r2,r2,r4 ADD r0,r0,#1 BL bkpoint uninstrumented code code with breakpoint
  • 87.  Save registers.  Allow user to examine machine.  Before returning, restore system state.  Safest way to execute the instruction is to replace it and execute in place.  Put another breakpoint after the replaced breakpoint to allow restoring the original breakpoint.
  • 88.  A microprocessor in-circuit emulator is a specially-instrumented microprocessor.  Allows you to stop execution, examine CPU state, modify registers.
  • 89.  A logic analyzer is an array of low-grade oscilloscopes:
  • 90. System Data Samples system clock state or timing mode keypad display clock gen sample memory microprocessor vector address controller UUT
  • 91.  An instruction level simulation may be used to debug code running on the CPU.  A cycle-level simulation tool may be used for faster simulation of parts of the system.  A hardware/software co-simulator may be used to simulate various parts of the system at different level of detail.
  • 92.  Designing with microprocessors.  Development and debugging.  System-level performance analysis.  Example: alarm clock
  • 94.  Set time: hold set time, depress hour , minute.  Set alarm time: hold set alarm, depress hour , minute.  Turn alarm on/off: depress alarm on/off.
  • 95. name purpose inputs outputs functions alarm clock 24-hour digital clock with one alarm set time, set alarm, hour, minute, alarm on/off four-digit display, PM indicator, alarm ready, buzzer keep time, set time, set alarm, turn alarm on/off, activate buzzer by alarm hours and digits, no seconds; not high precision consumer product performance manufacturing cost power physical size/weight AC fits on stand
  • 96. 1 1 1 1 1 1 1 1 Speaker* Buttons* Lights* Display Mechanism
  • 97. set-alarm(): boolean alarm-off(): boolean Speaker* buzz() Buttons* set-time(): boolean alarm-on(): boolean minute(): boolean hour(): boolean Lights* digit-val() digit-scan() alarm-on-light() PM- light()
  • 98. Display time[4]: integer alarm-indicator: boolean PM-indicator: boolean set-time() alarm-light-on() alarm- light-off() PM-light-on() PM-light-off()
  • 99. Mechanism Seconds: integer PM: boolean tens-hours, ones-hours: boolean tens-minutes, ones-minutes: boolean alarm-ready: boolean alarm-tens-hours, alarm-ones-hours: boolean alarm-tens-minutes, alarm-ones-minutes: boolean scan-keyboard() update-time()
  • 100. update seconds with rollover display.set-time(current time) F F Rollover? Time >= alarm and alarm-on? T T update hh:mm with rollover alarm.buzzer(true) PM->AM AM->PM PM=true PM=false
  • 101. Set-time and not set-alarm and hours compute button activations Alarm-on Increment time tens w. rollover and AM/PM alarm-ready= true Alarm-off alarm-ready= false alarm.buzzer(false) Increment time ones w. rollover and AM/PM Set-time and not set- alarm and minutes save button states
  • 102.  The system has both periodic and aperiodic components-the current time must obviously be updated periodically, and the button commands occur occasionally  It seems reasonable to have the following two major software components:  An interrupt driven routine can update the current time. The current time will be kept in a variable in memory. A timer can be used to interrupt periodically and update the time.  A foreground program can poll the buttons and execute their commands. Since buttons are changed at a relatively slow rate, it makes no sense to add the hardware required to connect the buttons to interrupts.
  • 103. The foreground code will be implementedas a while loop: While (TRUE){ Read buttons(button values);/*read inputs*/ Process command(button values);/*do commands*/ Check alarm();/*decide whether to turn on the alarm*/ }
  • 104. The loop first reads the button using first command The buttons will remain depressed for many sample periods since the sample rate is much faster than any person can push and release buttons. • • We want to make sure that clock responds • to this as a single depression of the button, not one depression per sample interval.
  • 105.  Component testing:  test interrupt code on the platform;  can test foreground program using a mock-up.  System testing:  relatively few components to integrate;  check clock accuracy;  check recognition of buttons, buzzer, etc.
  • 106.  As shown in the figure this can be done using a simple edge detection
  • 107. System-level performance analysis  involves much more than the CPU.  any part of the system can affect total system performance.  CPU provides an upper bound on performance, but any other part of the system can slow down the CPU.  Ex: Move data from memory to the CPU 227
  • 108. System-level performance analysis  Steps involved in getting the data from memory to the CPU,  read from the memory  transfer over the bus to the cache; and  transfer from the cache to the CPU  The time required to transfer from the cache to the CPU is included in the instruction execution time, but the other two times are not.  Basic measure of performance- bandwidth: the rate at which we can move data. 228
  • 109. System-level performance analysis  Another way to measure performance is in units of clock cycles.  But, different parts of the system will run at different clock rates.  Bandwidth comes up when we are transferring large blocks of data.  Ex: Bandwidth provided by only one system component, the bus.  Image of 320 x 240 pixels, with each pixel composed of 3 bytes of data.  Grand total of 230,400 bytes of data.  If images are video frames-1/30 s 229
  • 110. System-level performance analysis  Assume that we can transfer one byte of data every microseconds- Bus speed of 1 MHz.  230400 bytes require 230400 μs=0.23 s to transfer one frame.  1/30 s=0.033 s allotted to the data transfer of one frame.  Therefore, we would have to increase the transfer rate by 7x to satisfy our performance requirement.  Bandwidth can be increased in two ways,  increase the clock rate of the bus.  increase the amount of data transferred per clock cycle. 230
  • 111. System-level performance analysis  Let P- bus clock period  W- bus width in units of bytes  T- units of bus cycles  t- real time  t=TP 231
  • 112. System-level performance analysis  A basic bus transfer transfers a W-wide set of bytes.  The data transfer itself takes D clock cycles.  Ideally, D=1, but a memory that introduces wait states is one example of a transfer that could require D>1 cycles. 232
  • 113. System-level performance analysis  Addresses, handshaking and other activities constitute overhead that may occur before (O1) or after (O2) the data.  For simplicity, we will lump the overhead into O=O1+O2.  The total transfer time for N bytes of data is given by,  A burst transaction performs B transfers of W bytes each. Each of those transfers will require D clock cycles.  The bus also introduces O cycles of overhead per burst. 233
  • 114. System-level performance analysis  This gives,  The width of the memory determines the number of bits we can read from the memory in one cycle- Data bandwidth. 234
  • 115. System-level performance analysis  We may also change the format of our data to accommodate the memory components. 235
  • 116. System-level performance analysis  Memory chips do not come in extremely wide aspect ratios.  By choosing chips with the right aspect ratio, we can build a memory system with the total amount of storage that we want that presents the data with that we want. and  SIMMs or DIMMs are wide but generally come in fairly standard widths.  Time required to read or write a memory is important in determining the performance.  Page modes operate similar to that of burst modes in buses. 236
  • 117. System-level performance analysis  If the data type do not fit naturally into the width of the memory.  Ex: To store color video pixels (24-bit color values-Red, Green and Blue) in our memory (24-bit wide memory or 8-bit wide memory or 32-bit wide memory )  If we have a 32-bit-wide memory, we have two main choices:  We could waste one byte of each transfer or use that byte to store unrelated data. 237
  • 118. System-level performance analysis  We could pack the pixels. The first read would get all of the first pixel and one byte of the second pixel; the second transfer would get the last two bytes of the second pixel and the first two bytes of the third pixel; and so forth.  The total number of accesses required to read E data elements of w bits each out of a memory of widthW is: 238
  • 119. Parallelism  Computer systems have multiple components.  When different components of the system operate in parallel, we can get more work done in a given amount of time.  Ex: Direct memory access- DMA was designed to off-load memory transfers from the CPU. The CPU can do other useful work while the DMA transfer is running. 239
  • 122. Parallelism  The top timing diagram shows activity in the system when the CPU first performs some setup operations, then waits for the bus transfer to complete, then resumes its work.  In the bottom timing diagram, once the first transfer is done, the CPU can start working on that data. Meanwhile, thanks to DMA, the second transfer happens on the bus at the same time.  Once that data arrives and the first calculation is finished, the CPU can go on to the second part of the computation.  The result is that the entire computation finishes considerably earlier than in the sequential case. 242
  • 123. Summary  Definition of an embedded system History of embedded systems Embedded system design process Formalism of embedded system design CPU – Programming Input and Output, and Performance Bus, Power Consumption Supervisor modes, Exceptions and Traps Coprocessors Memory System Mechanism 243