Neues vom STRIP Forth-Prozessor

Ähnliche Dokumente
Anbindung eines Forth- Targets an einen Forth-Host. Rechner z.b. PC steuert ein Target System z.b. Evaluation Board

Neues vom STRIP Forth-Prozessor

Forth im FPGA. Andrew Read's N.I.G.E.-Machine. Ulrich Hoffmann

Neues vom STRIP Forth-Prozessor

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Die Mikroprogrammebene eines Rechners

Der Toy Rechner Ein einfacher Mikrorechner

Mikrocontroller-Programmierung


Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 -

PLC-5- und SLC-Prozessoren im DH+ Verbund (SLC 5/04 -Prozessoren)

Java-Prozessoren. Die Java Virtual Machine spezifiziert... Java Instruktions-Satz. Datentypen. Operanden-Stack. Konstanten-Pool.

Grundlegendes zum PC

Instruktionssatz-Architektur

Sicheres C Programmieren in Embedded Systemen ARM II (ARM7TMDI [1] ) Wintersemester

Zusammenfassung der Assemblerbefehle des 8051

Arithmetische und Logische Einheit (ALU)

4.Grundsätzliche Programmentwicklungsmethoden

Informatik I Übung, Woche 40

TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems

Wozu dient ein Logikanalysator?

MikroController der 8051-Familie

Neue Prozessor-Architekturen für Desktop-PC

Optionale Übung Hardware Konfiguration mit HCD

AVR-Mikrocontroller in BASCOM programmieren, Teil 2

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit)

The amforth Cookbook angefangen

Dateien, die nicht in das Projekt eingebunden sind, werden ohne Syntax highlight dargestellt. MiCoWi und µvision Seite 1 Uwe Wittenfeld

0 C (Carry) Überlauf des 8ten Bits. 1 DC (Digit Carry) Überlauf des 4ten Bits. Mnemonic Parameter Beschreibung Status-Flags.

Problem: Keine Integers in JavaCard. ToDo: Rechnen mit Bytes und Shorts

EXCEL VBA Cheat Sheet

Imperative vs. Funktionale Programmierung

Übung 1 - Betriebssysteme I

Institut für Informatik Prof. Dr. D. Hogrefe Dipl.-Inf. R. Soltwisch, Dipl.-Inform. M. Ebner, Prof. Dr. D. Hogrefe Informatik II - SS 04.

Ein Computer zum Selbstbauen

Betriebssysteme Vorstellung

Werkzeuge zur Programmentwicklung

Vorlesung Rechnerarchitektur. Einführung

Speicheraufbau des AT89C5131

Ein- Ausgabeeinheiten

D32Kitty. Digital Signal Processor (DSP32c) based Data-acquisition board

Was ist die Performance Ratio?

Shangrila. One Instruction Set Computer

Kap 4. 4 Die Mikroprogrammebene eines Rechners

ARM Cortex-M Prozessoren. Referat von Peter Voser Embedded Development GmbH

VBA-Programmierung: Zusammenfassung

Das Prinzip an einem alltäglichen Beispiel

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging

Mikroprozessor als universeller digitaler Baustein

Datenpfad einer einfachen MIPS CPU

B1 Stapelspeicher (stack)

Microcontroller Architectures and Examples

Vorlesungsziele. Mit gängigen Begriffen etwas anfangen können. In der Lage sein, die Architektur von Mikroprozessoren zu verstehen

Softwarelösungen: Versuch 4

Grafikkarten-Architektur

Profiling und Coverage mit GNU und Bare Embedded Systems

11: Echtzeitbetriebssystem ucos-ii

Welche Informatik-Kenntnisse bringen Sie mit?

a) Wandeln Sie folgende Dualzahlen durch Gruppenbildung in das Oktal- und Hexdezimalsystem um

Einführung in die Programmierung mit VBA

Therefore the respective option of the password-protected menu ("UPDATE TUBE DATA BASE") has to be selected:

The app the crashes, before the breakpoint is reached: Code to the event:

Bios-Update Anleitung mit Q-Flash. Wichtige Hinweise!

THE GO PROGRAMMING LANGUAGE. Michael Karnutsch & Marko Sulejic

Der Beginn einer wunderbaren Freundschaft von Stefan Schnell

Array-Zuweisungen. Array-Zuweisungen können über die Position, den Namen oder gemischt erfolgen.

Aufgabe 1 Entwicklung einer Virtuellen Maschine

Rechnerarchitektur, Einführung in die Laborübungen

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

MIDIfyME. by raffael segmüller fair use only, 2008

Datenblatt: TERRA PC-BUSINESS 5000 GREENLINE 539,00. Bestseller Core i5 PC. Zusätzliche Artikelbilder IT. MADE IN GERMANY

Grundlagen der Rechnerarchitektur

SMP Übung 2 1. Aufgabe

Sicherheit wird messbar Lösungsansätze und Methoden. Case. 15. September 2009, Hotel St. Gotthard, Zürich

Rechnerarchitektur und Betriebssysteme (CS201): AVR-CPU und -Assembler

MySQL: Einfaches Rechnen.

Vorlesung 5: Interrupts

Computer-Architektur Ein Überblick

Transaktionen in der Praxis. Dr. Karsten Tolle

Assembler - Einleitung

PCI VME Interface SIS1100/SIS3100

Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015

Auch hier wieder. Control. RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite. Instruction[31 26] (also: das Opcode Field der Instruktion)

Ulrich Golze. Der RISC-Prozessor TOOBSIE

MATLAB driver for Spectrum boards

CAN-Bus mit Linux und Python

Boundary Scan Days 2009

Datenblatt: TERRA PC-BUSINESS 5000 Compact SILENT+ GREENLINE. Mini-ITX PC mit Core i3 Prozessor. Klein & leistungsstark mit SSD

3 Rechnen und Schaltnetze

Interface Definitionen zu E-LAB ICP-V24 Portable

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Datenblatt: TERRA PC-HOME 4000 GREENLINE 445,00. Multimedia-PC inkl. Cardreader. Details IT. MADE IN GERMANY

Transkript:

Neues vom STRIP Forth-Prozessor Tagung der Forth-Gesellschaft März 2014 Bad Vöslau/Österreich Willi Stricker

-Prozessor Inhalt 1. STRIP-Befehlssatz Bisher: minimaler Befehlssatz neu: erweiterter Befehlssatz 2. Aufbau eines STRIP-Forth Systems Neues vom STRIP-Processor - März 2014 2

-Prozessor Software-Ausstattung Befehlssatz Minimal-Befehlssatz Er enthält alle diejenigen Befehle, die für den Aufbau eines Forth-Systems zwingend erforderlich sind. Außerdem enthält er zusätzliche Befehle, die für die Hardware-Steuerung benötigt werden. Neues vom STRIP-Processor - März 2014 3

-Prozessor Befehlssatz Erweiterter STRIP-Befehlsatz Zweck der Erweiterung: Höhere Ablaufgeschwindigkeit. Er enthält weitere in Hardware ausgeführte Funktionen: Die Auswahl nach folgenden Kriterien: 1. Hardware-Aufwand 2. Benutzungs-Häufigkeit Neues vom STRIP-Processor - März 2014 4

-Prozessor Befehlssatz Basis: Forth Standard 200X Er besteht aus: - Core Word Set - Zusatzfunctionen Neues vom STRIP-Processor - März 2014 5

-Prozessor Befehlssatz Core Word Set er besteht aus 3 Gruppen Nucleus Interpreter Compiler Der STRIP Befehlssatz enthält nur Words aus dem Nucleus Neues vom STRIP-Processor - März 2014 6

-Prozessor Befehlssatz STRIP Nucleus Words Minimal-Befehlssatz (schwarz) nur Hardware Forth Standard Words zusätzliche Words (kursiv) Erweiterter Befehlssatz entweder Hardware als Primitives (rot/rot) oder Software als High level functions (blau/blau) Neues vom STRIP-Processor - März 2014 7

System-Befehle Hilfsfunktionen für den Compiler (runtime code of compiling words) ;S ( -- ) return ; LIT ( -- data ) immediate Wert LITERAL BRANCH ( -- ) unbedingte Verzweigung?BRANCH ( data -- ) bedingte Verzweigung für Structuren IF,ELSE THEN BEGIN UNTIL WHILE REPEAT Neues vom STRIP-Processor - März 2014 8

Processor Steuerungs-Befehle (Hardware-Steuerung) DISINT ( -- ) Disable Interrupts ENINT ( -- ) Enable Interrupts Neues vom STRIP-Processor - März 2014 9

Indirekter Befehls- und Unterprogramm-Aufruf EXECUTE ( address -- ) Neues vom STRIP-Processor - März 2014 10

RP@ ( -- RP ) RP! ( RP -- ) >R ( data -- ) R> ( -- data ) R@ ( -- data ) Return stack manipulation Neues vom STRIP-Processor - März 2014 11

Parameter stack manipulation SP@ ( -- SP ) SP! ( SP -- ) DEPTH ( -- SP ) identisch mit SP@ DROP ( data -- ) PICK ( position -- data ) -PICK ( data position -- ) DUP ( data - data data )?DUP ( data - data data if data <> 0 ) OVER ( data0 data1 - data0 data1 data0 ) ROT ( data0 data1 data2 - data1 data2 data0 ) SWAP ( data0 data1 - data1 data0 ) ROLL ( data nth data ) NIP ( data0 data1 - data1 ) TUCK ( data0 data1 - data1 data0 data1 ) NDROP ( data - ) Neues vom STRIP-Processor - März 2014 12

Memory access @ ( address -- data )! ( data address -- ) W@ ( address -- 0 word ) {32 bits only} W! ( word address -- ) {32 bits only} C@ ( address -- 0 byte ) C! ( byte address -- ) +! ( data address -- ) Neues vom STRIP-Processor - März 2014 13

Logic functions INVERT ( data -- result ) AND ( data1 data2 -- result ) OR ( data1 data2 -- result ) XOR ( data1 data2 -- result ) NOT ( flag -- flag ) identisch mit 0= Neues vom STRIP-Processor - März 2014 14

Compare functions 0= ( data1 data2 -- flag ) 0<> ( data1 data2 -- flag ) 0< ( data1 data2 -- flag ) 0> ( data1 data2 -- flag ) = ( data1 data2 -- flag ) <> ( data1 data2 -- flag ) < ( data1 data2 -- flag ) > ( data1 data2 -- flag ) >= ( data1 data2 -- flag ) <= ( data1 data2 -- flag ) U> ( data1 data2 -- flag ) U< ( data1 data2 -- flag ) U>= ( data1 data2 -- flag ) U<= ( data1 data2 -- flag ) FALSE ( -- false-flag ) TRUE ( -- true-flag ) Neues vom STRIP-Processor - März 2014 15

Select fuctions MIN ( data0 data1-- data-min ) MAX ( data0 data1-- data-max ) ABS ( data -- abs-data ) Neues vom STRIP-Processor - März 2014 16

Shift functions U2/C ( data -> carry result ) U2* ( data data*2 ) U2/ ( data data/2 ) LSHIFT ( data0 data1 -- data0*(2**data1)) RSHIFT ( data0 data1 -- data0/(2**data1)) Neues vom STRIP-Processor - März 2014 17

Arithmetic functions: plus, minus +C ( data0 data1 -- sum carry ) + ( data0 data1 -- sum ) NEGATE ( data -- -data ) - ( data1 data2 -- difference ) 1+ ( data -- data+1 ) 1- ( data -- data-1 ) Neues vom STRIP-Processor - März 2014 18

Arithmetic functions: multiply UM* ( data0 data1 prod-l prod-h ) M* ( data0 data1 prod-l prod-h ) * ( data0 data1 prod ) Neues vom STRIP-Processor - März 2014 19

Arithmetic functions: Divide UM/MOD ( data-l data-h div quot mod ) FM/MOD ( data-l data-h div quot mod ) SM/REM ( data-l data-h div quot mod ) /MOD ( data div quot mod ) / ( data div quot ) MOD ( data div mod ) Neues vom STRIP-Processor - März 2014 20

Arithmetic functions: multiply, divide */ ( data0 data1 div data0*data1/div ) */MOD ( data0 data1 div data0*data1/div mod ) Neues vom STRIP-Processor - März 2014 21

Constants 0 ( -- 0 ) identisch mit FALSE 1 ( -- 1 ) -1 ( -- -1 ) identisch mit TRUE Neues vom STRIP-Processor - März 2014 22

Gegenwart und Zukunft Forth-System mit Strip-Processor - Strip-System als Forth Target am Host-Rechner - Strip-System mit angeschlossenem Hilfs-Rechner als dummes Terminal - Strip-System als eigenständiger Forth Rechner Neues vom STRIP-Processor - März 2014 23

Strip-System als Forth Target am Host-Rechner Hardware Prozessor-Board STRIP Prozessor ROM RAM Software: Forth Nucleus Interface-Programm als Slave Rechner z.b. PC Hardware: Vollständiger Rechner mit Keyboard, Monitor Massenspeicher usw. Software Vollständiges Forth-System: Nucleus,Interpreter,Compiler, Block und File-system Target Nucleus als Vocabulary über Interface-Programm Neues vom STRIP-Processor - März 2014 24

Strip-System mit angeschlossenem Hilfs-Rechner als dummes Terminal Prozessor-Board Beliebiger Rechner z.b. PC STRIP Prozessor ROM RAM Software: Vollständiges Forth-System Nucleus Interpreter Compiler Disk/Filesystem Keyboard Forth-Words: KEY, KEY? Monitor Forth Words: EMIT Massenspeicher Forth Words: BLOCK-READ BLOCK-WRITE Software Interface Programm mit den benötgten Befehlen Neues vom STRIP-Processor - März 2014 25

Strip-System als eigenständiger Forth Rechner Prozessor-Board STRIP Prozessor ROM Angeschlossene Hardware Keyboard RAM Monitor Software: vollständiges Forth-System mit benötigten Programmen für die angeschlossene Hardware Massenspeicher Neues vom STRIP-Processor - März 2014 26

Ende Noch Fragen? Neues vom STRIP-Processor - März 2014 27