This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:multiasm:cs:chapter_3_7 [2025/01/06 13:43] – ktokarz | en:multiasm:cs:chapter_3_7 [2026/01/10 20:14] (current) – pczekalski | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Peripherals ====== | ====== Peripherals ====== | ||
| - | Peripheral | + | Peripherals |
| - | Internal peripherals are connected directly to the address, data, and control buses of the computer. External peripherals can be connected to the computer via USB or a similar connection. | + | Internal peripherals are connected directly to the computer' |
| <note info> | <note info> | ||
| - | The USB controller is also the peripheral device, so every external peripheral (e.g. mouse) is connected to the processor via an internal peripheral. In this book, we rather | + | The USB controller is also a peripheral device, so every external peripheral (e.g. mouse) is connected to the processor via an internal peripheral. In this chapter, we consider internal peripherals directly connected to the address, data, and control buses. |
| </ | </ | ||
| ===== Types of peripherals ===== | ===== Types of peripherals ===== | ||
| There is a variety of peripherals which can be connected to the computer. The most commonly used are: | There is a variety of peripherals which can be connected to the computer. The most commonly used are: | ||
| - | * parallel input/ | + | * parallel input/ |
| - | * serial communication ports | + | * serial communication ports, |
| - | * timers/ | + | * timers/ |
| - | * analogue to digital converters | + | * analogue to digital converters, |
| - | * digital to analogue converters | + | * digital to analogue converters, |
| - | * interrupt controllers | + | * interrupt controllers, |
| - | * DMA controllers | + | * DMA controllers, |
| - | * displays | + | * displays, |
| - | * keyboards | + | * keyboards, |
| - | * sensors | + | * sensors, |
| - | * actuators | + | * actuators. |
| + | |||
| + | ===== Addressing of I/O devices ===== | ||
| + | From the assembler programmer' | ||
| + | |||
| + | The size of the I/O address space is usually smaller than the size of the program or data address space. The method of accessing peripherals depends on the processor' | ||
| + | |||
| + | ===== Separate I/O address space ===== | ||
| + | A separate I/O address space is accessed independently of the program or data memory. In the processor, it is implemented using separate control bus lines to read or write I/O devices. Separate control lines usually mean that the processor also implements different instructions to access memory and I/O devices. It also means that the chosen peripheral and the byte in memory can have the same address, and only the instruction type distinguishes the final destination of the address. | ||
| + | A separate I/O address space is shown schematically in Fig. {{ref> | ||
| + | <note info> | ||
| + | The "#" | ||
| + | </ | ||
| + | |||
| + | <figure separateio> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | ===== Memory-mapped I/O address space ===== | ||
| + | |||
| + | In this approach, the processor doesn' | ||
| + | Memory-mapped I/O address space is shown schematically in Fig {{ref> | ||
| + | |||
| + | <figure memorymappedio> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||