Skip to content

Commit

Permalink
ELEC6254: io: add
Browse files Browse the repository at this point in the history
  • Loading branch information
jyhi committed Nov 1, 2020
1 parent c60f082 commit 2620793
Showing 1 changed file with 40 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# I/O

## CPU-Memory Register Transfer

- **Control bus:** carry read / write / output enable signals
- **Data bus:** transfer the content in register into or out of the CPU
- **Address bus:** select a particular register in memory

## Port-Mapped I/O

PMIO uses special instructions (e.g. `IN`, `OUT`) to transfer data between the computer system and the outside world.

- Special bus line, insns, and separate memory space is required
- Do not consume memory address space

## Memory-Mapped I/O

MMIO uses special memory locations in the normal address space.

- Use any insn (e.g. `MOV`, `ADD`) to access devices
- COnsume memory address space

### Direct Memory Access

DMA is a special form of MMIO: peripheral devices read / write the memory without going through the CPU.

- Complex design structure; separation of hardware controllers for DMA systems

## Parallel vs. Serial

Parallel interface: sends multiple bits at the same time.

- Easy to progeram, high speed
- High coat, cable length is limited

Serial interface: send bits one by one

- Long distance data transfer
- Fewer pins are required
- Slower than parallel

0 comments on commit 2620793

Please sign in to comment.