43
KESTREL PAST, PRESENT, AND FUTURE Samuel A. Falvo II <[email protected]> Fri Jun 14 22:04:28 PDT 2013

Kestrel - Past, Present, Future

Embed Size (px)

DESCRIPTION

I discuss the history of my Kestrel home computer project, where it currently stands, and where I'm taking it in the future.

Citation preview

Page 1: Kestrel - Past, Present, Future

KESTRELPAST, PRESENT, AND FUTURE

Samuel A. Falvo II <[email protected]>

Fri Jun 14 22:04:28 PDT 2013

Page 2: Kestrel - Past, Present, Future

YESTERDAY'S KESTREL

Page 3: Kestrel - Past, Present, Future

KESTREL 1CPU 65816

CPU Type 16-bit Accumulator CISCCPU/Bus Speed (MHz) 4 / 4

RAM (Min/Nom/Max, B) 32K / 32K / 32KRAM Type Asynchronous

ROM —Performance 1.00

Page 4: Kestrel - Past, Present, Future

KESTREL 1 (CON'T)Video —Audio —

Keyboard —Mouse —

Other I/O 65C22 VIA providing 1 synchronous serial port,and 16 bi-directional I/O pins.

Timers Two 16-bit count-down (65C22)System

Software—

Page 5: Kestrel - Past, Present, Future

KESTREL 1 (CON'T)

Page 6: Kestrel - Past, Present, Future
Page 7: Kestrel - Past, Present, Future

TODAY'S KESTREL

Page 8: Kestrel - Past, Present, Future

KESTREL 2CPU S16X4

CPU Type 16-bit non-Forth MISCCPU/Bus Speed (MHz) 12.5 / 12.5

RAM (Min/Nom/Max, B) 32K / 32K / 52KRAM Type Asynchronous

ROM —Performance 6.25

Page 9: Kestrel - Past, Present, Future

KESTREL 2 (CON'T)Video MGIA (640x200, bitmapped, black and white)Audio —

Keyboard KIAMouse —

Other I/O GPIA provides 32 bits of fixed, unidirectionalI/O (16 inputs, 16 outputs)

Timers —System

Software—

Page 10: Kestrel - Past, Present, Future

KESTREL 2 (CON'T)

Page 11: Kestrel - Past, Present, Future

TOMORROW'S KESTREL

Page 12: Kestrel - Past, Present, Future

KESTREL 2CPU S16X4B

CPU Type 16-bit non-Forth MISCCPU/Bus Speed (MHz) 12.5 / 12.5

RAM (Min/Nom/Max, B) 32K / 32K / 52KRAM Type Asynchronous

ROM —Performance 6.25

Page 13: Kestrel - Past, Present, Future

KESTREL 2 (CON'T)Video MGIAAudio 8-voice, 2-channel, SN76489-inspired PSG

Keyboard KIAMouse —

Other I/O GPIA provides 32 bits of fixed, unidirectionalI/O (16 inputs, 16 outputs)

Timers At least two, 32-bit count-down.System

SoftwarePort of eForth

Page 14: Kestrel - Past, Present, Future

KESTREL 3ACPU SeP64X11A

CPU Type 64-bit Forth-Optimized MISCCPU/Bus Speed (MHz) 13.0 / 13.0

RAM (Min/Nom/Max, B) 256KB / 8MB / 264

RAM Type AsynchronousROM —

Performance 6.50

Page 15: Kestrel - Past, Present, Future

KESTREL 3A (CON'T)Video CGIA-1Audio 8-voice, 2-channel PSG (Kestrel-2 compatible)

8-voice, 2-channel, 16-bit, DMA-fed DACsKeyboard KIA

Mouse KIAOther I/O GPIA-2 provides 128 bits of fixed, unidirectional

I/O (64 inputs, 64 outputs)Timers At least two, 32-bit count-down.System

SoftwareExpanded Port of eForth (vocabularies,multitasking, simple GUI)

Page 16: Kestrel - Past, Present, Future

KESTREL 3BCPU SeP64X11B

CPU Type 64-bit Forth-Optimized MISCCPU/Bus Speed (MHz) 50.0 / 50.0

RAM (Min/Nom/Max, KiB) 256 / 8192 / 264

RAM Type SynchronousROM —

Performance 25.0

Page 17: Kestrel - Past, Present, Future

KESTREL 3B (CON'T)Video CGIA-2

Same as CGIA-1 but with support for synchronous RAM

Audio 8-voice, 2-channel PSG (Kestrel-2 compatible)8-voice, 2-channel, 16-bit, DMA-fed DACs

Keyboard KIAMouse KIA

Other I/O GPIA-2 provides 128 bits of fixed, unidirectionalI/O (64 inputs, 64 outputs)

Timers At least two, 32-bit count-down.System

SoftwareExpanded Port of eForth (vocabularies,multitasking, possibly even a GUI)

Page 18: Kestrel - Past, Present, Future

KESTREL 3B (CON'T)MMU Segmented with Linear

Paging

Virtual / Effective / Real AddressSpace

264 / 280 / 223

Page Size 4096 bytesSLB Refill Method SoftwareTLB Refill Method Software

Page 19: Kestrel - Past, Present, Future

KESTREL 3B (CON'T)EXPERIMENTAL SUPPORT IN FORTH

(MICROKERNEL IN FORTH?)

EXPERIMENTAL PORT OF PLAN 9 FROM BELL LABS

Page 20: Kestrel - Past, Present, Future

CGIA BASIC THEORY OFOPERATION

Page 21: Kestrel - Past, Present, Future

CGIA BASIC THEORY OFOPERATION

SEPARATE VIDEO MEMORY FETCH FROM VIDEO MEMORYINTERPRETATION.

Page 22: Kestrel - Past, Present, Future

CGIA BASIC THEORY OFOPERATION

USE ALTERNATING LINE BUFFERS TO QUEUE RASTER DATA.

Page 23: Kestrel - Past, Present, Future

CGIA BASIC THEORY OFOPERATION

VIDEO FETCH CAN OCCUR AT MAXIMUM BUS SPEEDINDEPENDENT OF DISPLAY RATE.

(AS LONG AS IT COMPLETES BEFORE THE NEXT SCANLINE DISPLAYS, YOU'RE GOLDEN!)

Page 24: Kestrel - Past, Present, Future

CGIA BASIC THEORY OFOPERATION

CPU AND OTHER PERIPHERALS GET LEFT-OVER BANDWIDTH.

Page 25: Kestrel - Past, Present, Future

CGIA BASIC THEORY OFOPERATION

RAW MEMORY BANDWIDTH DETERMINES HORIZONTALRESOLUTION AND COLOR DEPTH.

DESIRED CPU PERFORMANCE AND FRAME RATE LARGELYDETERMINES VERTICAL RESOLUTION.

Page 26: Kestrel - Past, Present, Future

CGIA BASIC THEORY OFOPERATION

HORIZONTAL RESOLUTION25MHZ DOT CLOCK: 320, 640, AND MAYBE 1280.

65MHZ DOT CLOCK: 256, 512, AND 1024.

Page 27: Kestrel - Past, Present, Future

CGIA BASIC THEORY OFOPERATION

COLOR DEPTHS1, 2, 4, 8, AND 16 BITS/PIXEL.

Page 28: Kestrel - Past, Present, Future

CGIA BASIC THEORY OFOPERATION

VERTICAL RESOLUTION25MHZ DOT CLOCK: 200, 240, 400, AND 480 SUPPORTED.

65MHZ DOT CLOCK: 192, 384, 768 SUPPORTED.

Page 29: Kestrel - Past, Present, Future

MMU BASIC THEORY OFOPERATION

Page 30: Kestrel - Past, Present, Future

MMU BASIC THEORY OFOPERATION

PROGRAMS RUN INSIDE AN ADDRESS SPACE.

Page 31: Kestrel - Past, Present, Future

MMU BASIC THEORY OFOPERATION

RANGES OF ADDRESSES CORRESPOND TO SEGMENTS.FOR EXAMPLE, $0000-$1FFF MIGHT CORRESPOND TO THE FORTH INTERPRETER.

Page 32: Kestrel - Past, Present, Future

MMU BASIC THEORY OFOPERATION

SEGMENT REGISTERS INFORM THE CPU OF THE PROCESSADDRESS MAP.

SEGMENTS MAP INTO AN 80-BIT VIRTUAL ADDRESS SPACE.

Page 33: Kestrel - Past, Present, Future

MMU BASIC THEORY OFOPERATION

EXTRA ADDRESS BITS USED TO TELL ONE PROGRAM FROMANOTHER.

PREVENTS NEED TO FLUSH ALL ADDRESS MAPPING CONFIGURATION ON EVERY TASK SWITCH.

Page 34: Kestrel - Past, Present, Future

MMU BASIC THEORY OFOPERATION

TRANSLATION REGISTERS INFORM THE CPU WHERE PAGESOF A SEGMENT RESIDE IN PHYSICAL MEMORY.

Page 35: Kestrel - Past, Present, Future

MMU BASIC THEORY OFOPERATION

SEGMENT AND TRANSLATION REGISTERS ARE MANAGED BYSOFTWARE.

PAGE AND SEGMENTATION FAULT HANDLERS MANAGE THESEREGISTERS ON BEHALF OF THE CURRENTLY RUNNING

PROCESS.

Page 36: Kestrel - Past, Present, Future

MMU BASIC THEORY OFOPERATION

DURING A TRAP, CPU MUST PRESERVE NOT JUST PC, BUTALSO INSTRUCTION PACKET AEDDRESS, FAULTING ADDRESS,

AND INSTRUCTION SLOT NUMBER.

Page 37: Kestrel - Past, Present, Future

PSG BASIC THEORY OFOPERATION

Page 38: Kestrel - Past, Present, Future

PSG BASIC THEORY OFOPERATION

8 VOICES2 CHANNELS

STEREO GOODNESS.

Page 39: Kestrel - Past, Present, Future

PSG BASIC THEORY OFOPERATION

EACH VOICE A COMPLETE COPY OF THE SAME CIRCUIT.

Page 40: Kestrel - Past, Present, Future

PSG BASIC THEORY OFOPERATION

SQUARE WAVE AND PRNG NOISE SYNTHESIS ONLY.I MIGHT INCLUDE PULSE WIDTH CONTROL FOR MORE

INTERESTING SOUND EFFECTS.

Page 41: Kestrel - Past, Present, Future

PSG BASIC THEORY OFOPERATION

INSPIRED BY TEXAS INSTRUMENTS SN76489TEXAS INSTRUMENTS TI-99/4A

SEGA MASTER SYSTEM... COUNTLESS OTHER USES.

Page 42: Kestrel - Past, Present, Future

[email protected]

http://www.github.com/sam-falvo/kestrel

Page 43: Kestrel - Past, Present, Future

THANK YOU!Q & A