Computer Engineering¶
Computer engineering combines, traditionally, electrical engineering and Computer Science.
Computers are made of components with inputs, outputs, and logic tables.
Computer programs may or may not be verified using formal methods.
https://en.wikipedia.org/wiki/List_of_emerging_technologies#Electronics
https://en.wikipedia.org/wiki/List_of_emerging_technologies#IT_and_communications
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
PPC¶
x86¶
x86 is 32-bit CPU architecture.
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)
ISA¶
PCI¶
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.
AGP¶
ExpressCard¶
Some laptops have ExpressCard slots.
ExpressCard supersedes the PCMCIA (PC Card, CardBus) standards for smaller-form-factor expansion cards.
PCI-e¶
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:
Pylearn2 (Theano), Numba
Torch
cuBLAS (BLAS + CUDA = faster than Intel MKL)
PhysX¶
PhysX is a realtime physics engine for GPUs by Nvidia.
VGA¶
VGA (Video Graphics Array) is a video display interface.
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.
DisplayPort¶
Mini DisplayPort¶
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¶
/dev/sg
(CD/DVD)/dev/sd
(hardrive, USB)/dev/scsi
SCSI (Small Computer System Interface) is a set of standards for device interaction and data interchange.
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.
PATA¶
PATA, ATA (Parallel ATA (AT Attachment)) is a 40-pin drive interface standard based on IDE, ATA, and ATAPI.
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)
Hard 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.
There are lots of SSD devices with various connectors:
NVMe
M.2
MMC
SD Card, USB Flash Drive (we usually don’t refer to SD Cards as SSDs, though they are)
SATA SSD¶
NVMe¶
M.2¶
M.2 was fomerly known as NGFF (Next Generation Form Factor)
M.2 supports PCI Express cards, SATA drives, and USB 3.0 devices
MMC¶
MMC (MultiMediaCard) is a standard for flash memory.
Most current devices support SD Cards instead of MMC.
eMMC¶
eMMC (Embedded MMC) is a standard for flash memory that’s generally soldered into the board.
Phones and Tablets are moving from eMMC to UFS.
Phones and tablets usually refer to flash storage as “Internal Storage”.
.. _sd card:
SD Card¶
MicroSD Card¶
USB Storage¶
USB Mass Storage Device¶
External USB Hard Drives, USB Flash Drives, Phones, Cameras, and USB SD Card adapters typically all implement the USB Mass Storage Device interface
All major operating systems support USB Mass Storage Devices; so you don’t need to install any drivers in order to read from and write to the media
USB Flash Drive¶
USB Flash Drives are also known as “USB Thumbdrives”
USB Flash Drives may support USB 1, 2, or 3.
If a USB Flash Drive supports USB 3.0, it also supports USB 1 and USB 2.
UFS¶
Disc Drives¶
CD
DVD
Blu-ray
[3D-] optical storage
See: Data Engineering
Thunderbolt¶
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 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).
1000BASE-T, 1000BASE-X, 10GBASE-T, and 40GBASE-T can all handle Gigabit Ethernet speeds (or greater)
Wireless routers before 802.11ac are not fast enough to handle gigabit speeds.
Wireless routers with 802.11ac and up (TODO) handle (shared) gigabit speeds.
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].
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).
List of TIA standards: http://www.tiaonline.org/standards/
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).
An Ethernet Crossover Cable has one T568A and one T568BB on each end, respectively.
An Ethernet patch cable has one of either T568A and T568B or T568A and T568B connectors on each end.
CAT-5¶
A CAT-5 (Category 5) cable is an Ethernet cable.
CAT-5 can carry 10BASE-T, 100BASE-TX, or 1000BASE-T
CAT-5e is the newer CAT-5 standard.
CAT-5e¶
CAT-5e (Category 5e) cable is an Ethernet cable with more stringent crosstalk (~’interference’) specs than a CAT-5 cable.
CAT-5e can carry 10BASE-T, 100BASE-TX, or 1000BASE-T
There is no CAT-6e, but there is a CAT-6A.
CAT-6¶
A CAT-6 (Category 6) cable is an Ethernet cable
CAT-6 can carry 10BASE-T, 100BASE-TX, 1000BASE-T, 10GBASE-T,
CAT-6A¶
A CAT-6A (Category 6A) cable is an Ethernet cable
CAT-6A can carry 10BASE-T, 100BASE-TX, 1000BASE-T, 10GBASE-T,
Ethernet¶
Ethernet cables are limited to 100 metres (328 ft) in length – https://en.wikipedia.org/wiki/Fast_Ethernet#Copper
An ethernet cable installer uses a crimper tool to crimp [8PMC] connectors (”terminators”) to the ends of an ethernet patch cable or an Ethernet Crossover Cable.
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.
Gigabit Ethernet¶
Copper Gigabit Ethernet: 1000BASE-T, 10GBASE-T, 40GBASE-T
Fiber Gigabit Ethernet : 1000BASE-X, […]
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:
OLPC (One Laptop Per Child) laptops support IEEE 802.11s mesh networking with standard 802.11b/g wireless cards.
Redstone Technologies LLC (Gigabit wireless mesh networks)
Mobile Broadband¶
3G¶
4G¶
5G¶
CDMA¶
W-CDMA (WCDMA) is a 3G wireless standard.
GSM¶
LTE¶
Artemis pCell pWave LTE: http://www.artemis.com/pcell
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.
Standard: https://tools.ietf.org/html/rfc826arp -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).
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.
- 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.
- 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.