Computer Engineering

Computer engineering combines, traditionally, electrical engineering and Computer Science.

Monitor

  • Serial
  • CRT
  • LCD
  • OLED
  • Quantum Dots
  • [ ] list of emerging technologies # ~display

todo: grep for todo,fixme,[ ]

Northbridge

  • Many/most desktops, laptops, and servers have a northbridge which connects many core system components.
  • A CPU is connected to a northbridge.
  • A CPU may be connected to a northbridge through a motherboard processor socket.
  • A northbridge connects to RAM.
  • A northbridge connects to a System Bus (e.g. PCI-e)
  • A southbridge connects to a Northbridge.

Processor

CPU

A CPU (Central Processing Unit) — or processor — does variable logic according to a set of gates and input instructions.

  • A computer has one or more CPUs.
  • A CPU has one or more cores.
  • A CPU has one or more internal (L1, on-die) or external (L2) caches.
  • A CPU cache buffers addressed memory for CPU instructions.
  • A CPU supports an instruction set.
  • A CPU may be programmable with microcode.
  • A CPU evaluates a stream of instructions (e.g. a Turing Machine).
ARM
  • Routers
  • Smartphones
  • Notebooks
    • Chromebooks
  • Routers
  • Servers
x86

x86 is 32-bit CPU architecture.

  • A PC by a number of definitions
x86_64

x86_64 (x64, AMD64) is a 64-bit CPU architecture.

Memory

  • RAM – live working area (“desktop”, “workspace”)
  • Persistent Storage – Hard Drive, CD/DVD, USB drive, SSD (“file cabinet”)

RAM

RAM (Random Access Memory) is a category of volatile storage technologies which require voltage to remain applied in order to maintain state.

  • RAM is hundreds of times faster than many/most other Persistent Storage methods.
  • It takes seconds for the voltage from RAM to discharge.
  • A cold boot or cold reboot is when the RAM gets a few seconds (sometimes 30 or more) to discharge. (“the magic touch”)

System Bus

https://en.wikipedia.org/wiki/Bus_(computing)

PCMCIA

PCMCIA is a standard for smaller-form-factor expansion cards.

  • PCMCIA is now known as “PC Card” and “CardBus”.
  • Some laptops have PCMCIA slots.
  • There are PCI to PCMCIA adapter cards.

ExpressCard

  • Some laptops have ExpressCard slots.
  • ExpressCard supersedes the PCMCIA (PC Card, CardBus) standards for smaller-form-factor expansion cards.

Video Card

A video card connects a System Bus with a monitor through one or more display connectors and does computer graphics processing.

  • A computer may have zero or more video cards.
  • A video card contains a GPU.
  • Many/most video cards connect to the System Bus (e.g. AGP, PCI-e).
  • Some video cards connect over USB (e.g. for adding monitors to a notebook).

Multiheaded Display

Q: Why would I need more than one monitor?

A: To multitask.

A: For presentations. For presentations with multiple projectors and something like Resolume.

Per Video Card multi-headed display configurations:

  • Synchronized, Mirroring — Same output on multiple monitors
  • Teamed, Seamed, Tiled — One framebuffer which spans multiple monitors
  • Multi-seat — separate display/keyboard/mouse (“multi-user console server”, thin client server, LTSP)

Challenges

  • Window placement
    • Split screen
    • Tabbed
    • Stacked
    • Floating
  • Keyboard shortcuts
    • move window_x to monitor 2
    • move window_x and ancillary floating windows to desktop 6
    • set monitor 2 to desktop 6
    • move this whole workspace to the monitor on the side
    • show window_x in fullscreen across other windows
    • toggle floating and always-on-top for window_x

See: i3wm

GPU

A GPU (Graphics Processing Unit) does variable logic according to a set of gates and input instructions; with massive parallelism.

  • A computer has zero or more GPUs.
  • A GPU may have internal RAM; or may use a portion of the system ram (as with many notebooks)
  • A GPU is designed for parallel computation.
  • GPUs were designed, in particular, for realtime 3D Modeling (vertex pixel shading, physics)
  • GPUs have driven demand for faster system bus standards.
  • GPU-accelerated code is code that has been adapted for or just runs faster on a GPU.
  • Many GPUs support GPU-accelerated OpenGL.
  • Some GPUs support CUDA.
  • Some GPUs support PhysX.
CUDA

CUDA (Compute Unified Device Architecture) is an API for GPUs.

CUDA-accelerated libraries for Data Science, Machine Learning, Deep Learning:

PhysX

PhysX is a realtime physics engine for GPUs by Nvidia.

VGA

VGA (Video Graphics Array) is a video display interface.

  • VGA connectors are often blue.
  • VGA connectors are 15-pin and trapezoidal
  • VGA predates DVI and HDMI
  • There are VGA to DVI and/or HDMI adapters.

DVI

DVI is a video display interface.

  • DVI connectors are often white.
  • There are a number of different DVI connectors; as well as Mini-DVI and Micro-DVI connectors.

HDMI

HDMI (High-Definition Multimedia Interface) is an audio/visual interface standard.

  • HDMI cables carry audio and video over the same cable.
  • There are 5 types of HDMI connectors:
    • Type A – classic 19-pin HDMI
    • Type B – 29-pin HDMI
    • Type C – “Mini HDMI” (mini- HDMI Type A)
    • Type D – “Micro HDMI” (looks like micro-USB)
    • Type E – automotive locking tab
  • HDMI can also carry Ethernet signals.
Mini HDMI

Mini HDMI is an HDMI Type C (“Mini HDMI Type A”) connector.

  • Mini HDMI connectors are often found on older mobile devices.
  • Micro HDMI supersedes Mini HDMI.

Note

An adapter is required to connect Mini HDMI and/or Micro HDMI connectors to e.g. a standard HDMI Type A connector on a TV.

Micro HDMI

Micro HDMI is an HDMI Type E connector.

  • Micro HDMI connectors are often found on newer mobile devices.
  • Micro HDMI supersedes Mini HDMI.

Note

An adapter is required to connect Mini HDMI and/or Micro HDMI connectors to e.g. a standard HDMI Type A connector on a TV.

Data Device Bus

https://en.wikipedia.org/wiki/Bus_(computing)

USB

USB (Universal Serial Bus) is a group of standards for device interaction and one-way and two-way power and data transfer.

USB bus speeds:

  • USB – 12 mbps
  • USB 2.0 – 480 Mbps
  • USB 3.0 – 5000 Mbps (5 Gbps) (5 Gigabit)
  • USB 3.1 – 10000 Mbps (10 Gbps) (10 Gigabit)
  • USB Type-C (USB 3.1; 10 GBps)

USB connectors:

  • USB Type A – classic rectangular USB with pins on one side
  • USB Type B – square USB (e.g. some printers)
  • Mini-USB – now deprecated (see: Micro-USB)
  • USB Mini-A – (deprecated)
  • USB Mini-B – (deprecated)
  • Micro-USB – industry standard OMTP (2007), ITU (2009), EU (2010)
    • USB Micro-A – rectangular
    • USB Micro-B – trapezoidal
    • USB Micro-AB – supports both Micro-A and Micro-B
    • USB OTG (on-the-go) – (mobile) support for charging and hub
    • USB 3.0 Micro-B – Micro-USB-B + 5 pins (USB Micro-A cables work with USB 3.0 Micro-B connectors, but USB 3.0 Micro-B cables do not work with USB Micro-B connectors)
  • USB 3.0 Type A – classic rectangular USB with pins on one side (works with USB Type A)
  • USB 3.0 Type B – USB 3.0 Type A + extra block of pins on the top
  • Each USB device can draw 5 v 500 mA of current (2.5 watts).
    • USB Type-C devices support 5 v 1.5 A, 3.0 A + 900 mA (e.g. for charging and powering one laptop or mobile device from another).

USB Hub

A USB Hub is an n-way splitter with two or more USB connectors.

  • A powered USB Hub is a USB Hub which must be connected to an external power source; and can charge many devices
    • USB Type-C essentially functions as a powered USB Hub (in either direction, as power is available)
USB Keyboard
USB Mouse

USB Type-C

  • Operating Systems: Windows 10, OSX 10, Android M
  • Adapters: DisplayPort, Thunderbolt, MHL
  • USB Type-C as the primary charging interface:
    • Post-2015 MacBooks, Chromebook Pixel 2+
  • Vendors with portable storage drives with USB Type-C connectors (2015):
    • LaCie, SanDisk

SATA

SATA (Serial ATA) is a data device bus standard.

  • SATA (1.5, 3.0, 6.0, 16 Gbit/s) is faster than all current USB standards (USB 2.0, USB 3.0. USB 3.1 (USB Type-C)), IDE, and ATA (PATA)
  • eSATA is SATA for external drives.

eSATA

eSATA (External SATA) works with (powered, unpowered, portable) external drives.

mSATA

mSATA (Mini-SATA) is a smaller eSATA connector.

eSATAp

eSATAp (Power eSATA) is a eSATA connector which also includes power and supports USB.

An eSATAp port combines the four pins of the USB 2.0 (or earlier) port, the seven pins of the eSATA port, and optionally two 12 V power pins
  • Without eSATAp, eSATA devices require an additional power source.

SCSI

DevPrefix: /dev/sg (CD/DVD)
DevPrefix: /dev/sd (hardrive, USB)
DevFS: /dev/scsi

SCSI (Small Computer System Interface) is a set of standards for device interaction and data interchange.

  • Drives faster than 7200 RPM are often either SCSI or, now, SATA drives
  • Some CD/DVD devices are SCSI devices
  • SATA and eSATA devices register as SCSI devices with newer Linux kernels and distributions.

IDE

IDE (Integrated Drive Electronics) is a 40-pin cable connector and drive interface standard which predates (and is now part of) the Parallel ATA standards.

  • Newer drives have USB, SATA, or eSATA connectors (which, like IDE, all also require the drive to handle its own storage logic)

PATA

PATA, ATA (Parallel ATA (AT Attachment)) is a 40-pin drive interface standard based on IDE, ATA, and ATAPI.

  • SATA (Serial ATA) is derived from PATA (Parallel ATA).
  • Newer drives have USB, SATA, or eSATA connectors

Persistent Storage

Slowest -> Fastest:

  • Punch cards
  • Tape drives
  • Disk drives (floppy: 8”, 5.25”, 3.5”)
  • Disc Drives (CD, MiniDisc, DVD, Blu-ray, [3D-] optical storage)
  • Hard Drives (HD)
  • SSDs

Hard Drives

  • 5400 RPM – notebook (energy savings; see also SSD)
  • 7200 RPM – desktop, notebook
  • 10000 RPM – high end SCSI drives

SSD

An SSD (Solid-State Drive) is a binary data storage device based on an integrated circuit that does not require voltage to be applied to maintain state.

  • SSDs are faster and (currently) more expensive than Hard Drives.
  • SSDs are more energy efficient than Hard Drives.
  • Notebooks and netbooks may include or be upgraded with an SSD.
  • Servers benefit from SSDs for caching, fast reads, and fast writes.

Disc Drives

  • CD
  • DVD
  • Blu-ray
  • [3D-] optical storage

See: Data Engineering

Network Interfaces

RS-232

An RS-232 serial or console port supports a DB-25 (25-pin) trapezoidal connector (most properly with stablizing thumb screws).

  • Systems with no/broken/unsupported graphics cards can often be booted and interacted with over an RS-232 serial port (given a serial console/monitor to attach)
  • There are USB to RS-232 cables
  • There are RS-232 over IP solutions.
  • Many full-system Virtualization tools support a serial / RS-232 console (for logging, debugging, emergencies).
  • Some e.g. wireless routers have RS-232 ports for flash recovery.
  • Many enterprise grade switches have RS-232 ports to which a console may be attached.

Gigabit

A gigabit is 1000 Mbps (1000 megabits per second).

NIC

A NIC (Network Interface Card) is a card that plugs into a System Bus which has one or more connectors for e.g. [wired Gigabit Ethernet Patch Cable].

8P8C

An 8P8C modular connector is an 8-pin plug (usually with a clip for cable safety); often for [Ethernet].

  • Some 8PMC modular connectors include a [flexible] coat/shield/tail to help with pin/connector strain and cabling safety.
  • Ethernet (CAT-5, CAT-6) cables have 8PMC connectors
  • HDMI over Ethernet (CAT-5, CAT-6) cables have 8P8C connectors
  • RS-232 cables have 8P8C connectors

TIA

TIA (Telecommunications Industry Association) is a standards group for many types of wireless and wireline networking; including specs for Ethernet-capable cabling (CAT-5, CAT-5e, CAT-6, CAT-6A).

T568A and T568B

TIA EIA-568 specifies the T568A and T568BB connector pin sequence (‘pinouts*) for 4-pair (8-wire) cabling (e.g. usually with an 8P8C [RJ45 [Ethernet]] connector).

CAT-5

A CAT-5 (Category 5) cable is an Ethernet cable.

CAT-5e

CAT-6

A CAT-6 (Category 6) cable is an Ethernet cable

CAT-6A

A CAT-6A (Category 6A) cable is an Ethernet cable

Ethernet

Ethernet Crossover Cable

An ethernet crossover cable has the correct pins swapped on one or both s of a cable (T568A and T568B <–> T568A and T568B).

Because the only difference between the T568A and T568B and T568A and T568B pin/pair assignments are that pairs 2 and 3 are swapped, a crossover cable may be envisioned as a cable with one modular connector following T568A and T568B and the other T568A and T568B (see TIA/EIA-568 Wiring). Such a cable will work for 10BASE-T or 100BASE-TX.

https://en.wikipedia.org/wiki/Ethernet_crossover_cable#Overview

Warning

Ethernet Crossover Cable != Ethernet Patch Cable

  • Many/most(?) newer devices are auto-sensing; and so won’t short out, or maybe work at all if a crossover cable is connected to anything other than:
    • between two NICs
    • between router/switch ‘bridge’ or ‘uplink’ ports (with instructions designated by the manufacturer in a manual often also available online).

Patch Cable

A “Patch Cable” is a cable for connecting two devices (with two different or the same connectors on each end).

10BASE-T

10Base-T is a 10 Mbps Ethernet standard.

  • 100BASE-TX ultimately supersedes 10BASE-T

100BASE-TX

100BASE-TX is a 100 Mbps Ethernet standard.

  • 100BASE-T is backward-compatible with 10BASE-T (some cards will say 10/100)
  • 100BASE-TX ultimately supersedes 10BASE-T

Gigabit Ethernet

1000BASE-T

1000BASE-T is a 1000 Mbps (1 Gbps; 1 Gigabit Ethernet) Ethernet standard.

  • 100BASE-T is backward-compatible with 10BASE-T (some cards will say 10/100, or 10/100/1000)

1000BASE-X

1000BASE-X is a 1000 Mbps (1 Gbps; 1 Gigabit Ethernet) Fiber Ethernet standard.

10GBASE-T

10GBASE-T is a 10000 Mbps (10 Gbps) copper Ethernet standard.

40GBASE-T

40GBASE-T is a 40000 Mbps (40 Gbps) copper Ethernet standard with ISO Cat.8 cables.

Wireless

  • Wireless / Mobile / Radiofrequency
  • Wi-Fi == 802.11 wireless networking

802.11

IEEE 802.11 is a group of standards for wireless networking.

IEEE 802.11 is a set of media access control (MAC) and physical layer (PHY) specifications for implementing wireless local area network (WLAN) computer communication in the 2.4, 3.6, 5, and 60 GHz frequency bands.

802.11 “WiFi” standards:

IEEE Standard Frequency Band[s] Bandwidth (bits per second)
802.11b 2.4 GHz 11 Mbps
802.11g 2.4 GHz 54 Mbps
802.11a 5 GHz 54 Mbps
802.11n 2.4 GHz, 5 GHz 600 Mbps (MIMO)
802.11ac 2.4 GHz, 5 GHz 1300 Mbps (MIMO)
802.11ad 60 GHz 7000 Mbps (“WiGig”)
802.11ax 2.4 GHZ, 5 GHZ ~4x 802.11ac [ Draft ]
802.11ay 60 GHz 100000 Mbps (100 Gbps) [ Draft ]
     
MIMO
Multiple-Input Multiple-Output 802.11 devices aggregate multi-link capacity (and so operate with multi-band presence).

Other IEEE 802.11 standards:

  • 802.11s – wireless mesh networking

Note

Microwave ovens and cordless telephones, for example, operate in the 2.4 GHz (and 900 MHz) bands; which may cause interference in the already-crowded 2.4 GHz frequencies; which is why 802.11a, 802.11n, 802.11ac all [also] support the 5 GHz (hertz) range.

Wi-Fi Direct

Wi-Fi Direct is an alternative to Bluetooth with relatively seamless wireless device pairing/configuration.

Wireless mesh network

Wireless mesh networks route connections between nodes.

  • Wireless mesh networks do not require APs.
  • Wireless mesh networks are designed to be resilient to and tolerant of network failure.
  • Wireless mesh networks require ingress and egress points in order to route with the wider internet.

Mesh Wireless Approaches:

Fiber

Optical fiber can carry photons near the speed of light.

Fiber to the x

The various fiber deployment strategies are somewhat undescriptively all called “fiber to the x (FTTX)”.

  • Fiber to the neighborhood
  • Fiber to the premises
  • Fiber to the home

Fiber is the way forward in wireline broadband networks:

Fibre Channel

Fibre channel is an optical fiber networking technology.

Network Glossary

SOHO
Small home office
Modem
Modulator/demodulator. Transforms signals between Ethernet, Ethernet over USB, Coaxial Cable (Co-ax), Copper Phone, DSL Twisted Copper Pair(s), High Frequency Radio Mobile Broadband (cell-modem), SDR (Software Defined Radio), Fiber to the x.
ARP

ARP (Address Resolution Protocol) is an IETF standard for linking IP addresses with Ethernet addresses.

arp -a  # list arp entries [BSD style]
arp -e  # list arp entries [Linux tabular format]
arp -n  # do not resolve DNS addresses (display IPs instead)
DHCP

DHCP (Dynamic Host Configuration Protocol) is an internet standard for acquiring IP address leases and e.g. DNS resolver configuration settings.

Most SOHO routers include a DHCP server.

Some ISPs offer ‘dynamic’ IPs: an IP lease is acquired and/or released for a given MAC address, and may change as often as the ISP DHCP configuration specifies.

Some ISPs offter ‘static’ IPS: through DHCP and/or manual configuration of static routes.

If a DHCP lease expires while e.g. downloading or streaming, the connections are only dropped if the address is also removed from the interface (e.g. by dhclient upon notification of the DHCP lease expiration). One workaround for this is to preemptively renew the DHCP lease (as dhclient usually does).

To troubleshoot an ISP connection by removing the router and directly attaching a device with a firewall that starts at boot time, it’s often necessary to ‘clone’ the MAC address (for a static IP) or release the DHCP lease and/or power-cycle the modem.

Gateway

A gateway provides a connection to another IP network.

A routing table may include a default gateway network route and zero or more additional routes defined by system configuration and/or DHCP

Network Interface

A network interface is a software identifier for a “port” on a NIC.

## List interfaces
ifconfig    # UNIX, BSD, Linux
ipconfig    # Windows
ip l #link  # Linux
ip -s link  # Linux
ip a #addr  # Linux

## Bring an interface up or down
ifconfig eth0 up 127.2.2.2 netmask 255.255.255.0 broadcast 127.2.2.255
ifconfig eth0 down
ip l set dev eth0 up
ip l set dev eth0 down
  • There may be one or more network interfaces registered to a NIC:

    ip addr add 127.1.2.3 dev lo netmask 255.255.255.0
    
NIC

A NIC (Network Interface Card), or Network Card, is a physical adapter for connecting to a network (generally with a physical Ethernet (or Fiber) cable).

  • A Wireless NIC is also called a wireless card or wireless adapter.
Docs: NIC
Network Route

Packets are routed based upon network routing tables: rules for which network interface(s) and/or link(s)/tunnel(s) to send packets destined for anywhere (default gateway) or a specific network subnet (identified by e.g. a /24 prefix or a 255.255.255.0 subnet mask).

netstat -rn # BSD, OSX, Linux
route -n    # Linux # Flags="G"
route add gw 192.168.1.1 dev eth0
ip r #route # Linux       # "default via"
ip r add default gw 10.2.2.253
ip r add 10.2.3.0/24 via 10.2.2.253 dev eth0

# routes are usually managed by the OS.
# to reset them all and reboot all interfaces with downtime (!):
#  /etc/init.d/networking restart   # SysV Ubuntu, Debian
#  service network restart          # systemd {...}

# restart interface eth0
#  #(and re-run dhcplient for an IP lease from DHCP
#  #  (e.g. from a router that assigns local IPs ike 192.168.0.101))
#  ifdown eth0; ifup eth0           # Linux [man ifdown ifup]
Hub

A network hub connects (or bridges) multiple network interfaces to a shared bus; where all machines get a copy of all packets as repeated by the hub.

  • Normally, a NIC (device, driver) is configured to select only packets destined for local addresses.
  • (In promiscuous mode, an interface receives all packets regardless of the packet protocol destination field. (Useful for debugging e.g. ARP)).
Bridge

A network bridge is a hub; often a software defined bridge to which network interfaces can be added/attached and deleted/removed.

In Linux, network bridges are configured with brctl:

brctl
brctl show

# create a bridge which will last until reboot
brctl addbr br0
brctl addif br0 eth0
btctl addif br0 eth1
brctl show  br0
brctl showmacs br0
Switch

A network switch routes packets to specific ports based upon an ARP table.

  • SOHO Routers are often configured as a switch (relay packets); with a fallback or configuration setting to hub mode (repeat all packets).
Router

A SOHO Router is usually configured as a Gateway and a Switch (with at least one port allocated to a different network connection).

  • An actual (“trunk”, “internet”, “backbone”) router is usually configured as a Router, with routing table advertisement protocols like RIP, BGP, and IPv6 radvd; in order to optimize throughput and minimize latency.
  • SOHO Routers are often configured as a switch (relay packets); with a fallback or configuration setting to hub mode (repeat all packets).
AP

A Wireless access point (AP) is a wireless NIC with one or more antennas and a power source; which often also acts as a router and/or a wireless mesh router.

Note

Cool AP Ideas (cost, maintenance, spacing, redundancy, resiliency):

  • [ ] Wifi Streetlamp posts
  • [ ] Wifi Parking meters
  • [ ] Solar wireless APs (shaped as flowers for cost and water/cleaning/maintenance)
  • [ ] MEMS wireless APs (see also: Bluetooth BLE)
WiFi
WiFi is a name for a set of IEEE 802.11 Wireless standards.