Reviving a Computer System of 25 Years ago Symposium at ETH - - PowerPoint PPT Presentation

reviving a computer system of 25 years ago
SMART_READER_LITE
LIVE PREVIEW

Reviving a Computer System of 25 Years ago Symposium at ETH - - PowerPoint PPT Presentation

Reviving a Computer System of 25 Years ago Symposium at ETH 20.2.2014 Niklaus Wirth www.inf.ethz.ch/personal/wirth/ProjectOberon Programming Languages and Software Systems Algol-W (at Stanford U. 1966) Pascal (1970) Structured


slide-1
SLIDE 1

Reviving a Computer System

  • f 25 Years ago

Symposium at ETH 20.2.2014 Niklaus Wirth www.inf.ethz.ch/personal/wirth/ProjectOberon

slide-2
SLIDE 2

Programming Languages and Software Systems

  • Algol-W (at Stanford U. 1966)
  • Pascal (1970) Structured programming
  • Modula-2 (1979) Modular programming
  • Windows, Menus, Icons (on computer Lilith)
  • Oberon (1988) Object-oriented programming
  • Oberon System (1990, on computer Ceres)
slide-3
SLIDE 3

Personal Computers

  • Alto at Xerox PARC (1975)
  • Hi-res, memory-mapped display, Mouse
  • Processor: TTL, 74S181 ALU (5.9 MHz)
  • 64K x 16 bit memory (1K bit chips!)
  • 2 MB cartridge disk (DEC)
  • 3 MHz Ethernet
  • Inaugurates the age of computers
  • Interactivity
slide-4
SLIDE 4

Xerox Alto (1975)

slide-5
SLIDE 5

Lilith (1980)

  • Alto with newer technology
  • Hi-res display, 640 x 800 pixels
  • 3 button mouse
  • Processor: 4 AMD 2901 (7 MHz)
  • 64K 16 bit word memory
  • 10 MB cartridge disk (later 15MB disk)
  • 3 MHz Ethernet (1981)
  • Central laser printer (Canon LBP-10)
  • 500 MB central file server (1982)
slide-6
SLIDE 6

Lilith (1980)

slide-7
SLIDE 7

Lilith (1982)

slide-8
SLIDE 8

Ceres (1985, 1988)

  • Commercial microprocessor (NS32x32)
  • Hi-res display (1024 x 800 pixels)
  • 2 MB memory (Ceres-1), 8 MB (Ceres-2)
  • 10 MHz clock (Ceres-1), 25 MHz (C-2)
  • 40 MB disk (Ceres-1), 80 MB disk (C-2)
  • dual port RAM chips for display
  • 233 KHz network (low-cost)
slide-9
SLIDE 9

Ceres-1 (1986)

slide-10
SLIDE 10

Ceres-3 (1990)

slide-11
SLIDE 11

Resurrecting Project Oberon

  • Project Oberon (Addison-Wesley, 1992)
  • A rare book presenting all details of an

entire operating system and compiler

  • Essential for engineering education
  • Document of the State-of-the-Art of 1990
  • Bring it up to date and publish on Web!
  • But …
slide-12
SLIDE 12
  • NS-processor extinct

– Large chapter on compiler is now irrelevant

  • Subject of storage mangement presented

in obscure assembler code for NS processor

  • Same for raster operations for displaying

characters and lines

  • Chapters on compiler, linking loader,

garbage collection, and raster operations are either outdated or missing

  • Yet, most of the book can be retained
slide-13
SLIDE 13

Consequences

  • Design my own processor: RISC
  • Implement this processor (with FPGA)

– Low-cost development board Spartan-3 – board contains 1 MB memory (SRAM) – disk replaced by CD-card (SPI interface)

  • Describe complete hardware (in Verilog)
  • Rewrite chapters on compiler and linker
  • Rewrite chapter on peripheral interfaces
  • Describe all in Oberon, no assembler!
slide-14
SLIDE 14

RISC (2013)

slide-15
SLIDE 15

RISC on Spartan 3 (2013)

slide-16
SLIDE 16

The processor RISC

Program counter Instr Reg + 1 Program Memory adr C0

+

decode pcmux

  • ff

nxpc IR, cond

Data Register

Bank 16 x 32 Data Memory B C0

  • ffset

Shifter

adr

ALU

A imm

+

regmux PC IR

slide-17
SLIDE 17

RISC instruction set

0 MOV a, n R.a := n 1 LSL a, b, n R.a := R.b ← n (shift left by n bits) 2 ASR a, b, n R.a := R.b → n (shift right by n bits) 3 ROR a, b, n R.a := R.b rot n (rotate right by n bits) 4 AND a, b, n R.a := R.b & n logical operations 5 ANN a, b, n R.a := R.b & ~n 6 IOR a, b, n R.a := R.b or n 7 XOR a, b, n R.a := R.b xor n 8 ADD a, b, n R.a := R.b + n integer arithmetic 9 SUB a, b, n R.a := R.b – n 10 MUL a, b, n R.a := R.a × n 11 DIV a, b, n R.a := R.b / n 12 FAD a, b, c R.a := R.b + R.c floating-point arithmetic 13 FSB a, b, c R.a := R.b – R.c 14 FML a, b, c R.a := R.a × R.c 15 FDV a, b, c R.a := R.b / R.c

slide-18
SLIDE 18

What have I learnt?

  • Writing a program is difficult
  • Writing a correct program is even more so
  • Writing a publishable program is exacting
  • Programs are not written. They grow!
  • Controlling growth needs much discipline
  • Reducing size and complexity is the triumph
  • Programs must not be regarded as code for

computers, but as literature for humans