102 lines
1.8 KiB
Markdown
102 lines
1.8 KiB
Markdown
|
---
|
||
|
title: Hence
|
||
|
version: 1.0.0
|
||
|
theme: dracula
|
||
|
footer: Grimm
|
||
|
header: Hence
|
||
|
marp: true
|
||
|
size: 4K
|
||
|
---
|
||
|
|
||
|
# Hence
|
||
|
|
||
|
Ein Ausflug in die Welt einer virtuellen CPU
|
||
|
|
||
|
_Dominic Grimm_
|
||
|
|
||
|
<style scoped>
|
||
|
h1 {
|
||
|
padding-top: 1.5em;
|
||
|
}
|
||
|
</style>
|
||
|
|
||
|
![bg left](./assets/brian-kostiuk-S4jSvcHYcOs-unsplash.jpg)
|
||
|
|
||
|
---
|
||
|
|
||
|
# Inhalt
|
||
|
|
||
|
- Was ist eine CPU?
|
||
|
- Überblick Assembler
|
||
|
- Hence
|
||
|
- (Hence-)Forth
|
||
|
|
||
|
=> _Workshop_
|
||
|
|
||
|
---
|
||
|
|
||
|
# Was ist eine CPU?
|
||
|
|
||
|
- Herzstück eines Computers
|
||
|
- Kleiner Chip auf Hauptplatine
|
||
|
- Verarbeitung Arithmetik und Logik
|
||
|
- Zugriff auf Speicher und Peripherie
|
||
|
|
||
|
![bg right](./assets/harrison-broadbent-VOz0gV9HC0I-unsplash.jpg)
|
||
|
|
||
|
---
|
||
|
|
||
|
## Aufbau
|
||
|
|
||
|
![bg right:35% fit](./assets/was-ist-cpu-darstellung.png)
|
||
|
|
||
|
- _Steuerwerk, Rechenwerk, Cache, Register_
|
||
|
- Cache: schneller Speicher für oft benötigte Daten
|
||
|
- CPU kommuniziert über Bus-Systeme
|
||
|
- Leistung abhängig von Kernzahl, Taktfrequenz, Cache und Architektur
|
||
|
- Neueste Entwicklungen: Multi-Core-Prozessoren und KI
|
||
|
|
||
|
---
|
||
|
|
||
|
## Machine code
|
||
|
|
||
|
- Niedrigste Ebene der Programmierung.
|
||
|
- Binäre Instruktionen, direkt von der CPU ausgeführt
|
||
|
- Jede CPU-Architektur hat ihre eigene Maschinensprache, die spezifisch für diese Architektur ist
|
||
|
|
||
|
- Sehr effizient, da direkt von CPU ausgeführt
|
||
|
- Meist in höherer Programmiersprache geschrieben
|
||
|
|
||
|
=> *Assembler*
|
||
|
|
||
|
---
|
||
|
|
||
|
### Beispiel
|
||
|
|
||
|
*hexadezimal kodiert (`hexdump`)*
|
||
|
|
||
|
```
|
||
|
00000000 03 7f fc 86 03 a0 00 06 00 06 03 c0 02 8b 06 00 |................|
|
||
|
00000010 05 03 c0 01 8c 04 00 06 8c 03 00 01 06 00 05 03 |................|
|
||
|
*
|
||
|
```
|
||
|
|
||
|
| Code | Opcode | Argument |
|
||
|
| ---------- | -------------- | ---------------- |
|
||
|
| `03 7f fc` | `0x03` (`ts`) | `0x7ffc` (32764) |
|
||
|
| `86` | `0x06` (`tlr`) | |
|
||
|
| `03 a0 00` | `0x03` (`ts`) | `0xa000` (40960) |
|
||
|
|
||
|
---
|
||
|
|
||
|
# Überblick Assembler
|
||
|
|
||
|
![width:30cm](./assets/assembler.png)
|
||
|
|
||
|
---
|
||
|
|
||
|
# Hence
|
||
|
|
||
|
- Virtuelle "CPU" (eher SBC)
|
||
|
-
|