# MPT WS2024-1

## Aufgabe 1 (25 Punkte)

1\. Gegeben ist ein Mikroprozessor in Neumann-Architektur. Die Peripherie wird über memory mapped I/O eingebunden. Dafür werden ein 512 MByte großer Block und ein 1 GByte großer Block vorgesehen. Zusätzlich sollen bis zu 2,5 GByte Hauptspeicher adressiert werden können. Die internen 32 Bit Register können vollständig mit einem Speichertransfer geladen werden.

&#x20;   a.  Wie viele Adressleitungen muss der Adressbus umfassen?

&#x20;   b. Wie viele Datenleitungen muss der Datenbus umfassen?

&#x20;   c. Welche Bitbreite muss der Programmzähler besitzen?

&#x20;   d. Welche maximale Programmgröße ist möglich?

2\. Die Operanden enies AND-Befehls müssen sich immer in Registern befinden. Welche Maschinenarchitektur liegt vor und wie viele Operanden umfasst der AND-Befehl mindestens?

3\.  Nennen Sie zwei Adressierungsarten, die einen Hauptspeicherzugriff bedingen!

4\. Sind RISC-Befehlssätze orthogonale Befehlssätze? Begründen Sie Ihre Antwort!

5\. Wie lautet das Pseudo-Assemblerprogramm zur Umsetzung der Funktion c = a AND b auf einem Akkumulatorrechner?

6\. Welcher Prozessoreinheit können die AVX2-Befehle zugeordnet werden?

## Aufgabe 2 (32 Punkte)

Gegeben sei ein ARM-Cortex-M4-Prozessor auf einem STM32F429xx Entwicklungsboard.

1\. Welche Möglichkeit zur Erhöhung der Befehlsdichte im Programmspeicher bietet der ARM-Prozessor?

2\. Warum wurde das Link-Register zur Speicherung der letzten Rücksprungadresse eingeführt?

3\. Nach welcher Norm und nach welcher Genauigkeit arbeitet die FPU des ARM Cortex M4?

4\. Über welches Register erfolgt die Umschaltung zwischen den verschiedenen Stack-Bereichen im ARM Cortex M4?

5\. Aktivieren Sie den Process-Stack! Gehen Sie davon aus, dass die Privilegebene privileged ist. Alle weiteren Bit des Registers können mit 0 angenommen werden!

6\. In welchem Adressbereich befinden sich die Register von GPIOC auf dem gegebenen Entwicklungsboard?

7\. Über welches Bussystem wird GPIOC eingebunden?

8\. Laden Sie die Konstante 0x040860EC unter Verwendung des Pseudo-Befehls in Register R4!

9\. Vervollständigen Sie das Programm aus Teilaufgabe 2.8, sodass mit dem resultierenden Wert in R4 ein Wechsel in den Thumb-Modus durchgeführt wird!

10\. Aktivieren Sie ausschließlich SYSCFG unter Verwendung von:

&#x20;   a. Pointer

&#x20;   b. CMSIS

## Aufgabe 3 (20 Punkte)

Gegeben sei ein Interrupt-System bestehend aus einem Main Programmable Interrupt Controller (PIC) des Typs 8259A mit der Basisadresse 0x60 und einem Secondary PIC 8259A mit der Basisadresse 0x80. Der Secondary PIC ist mit IRQ1 des Main PIC verbunden.

1\. Initialisieren Sie das System mit den folgenden Randbedinungen: 8086-Modus, normales Ende des Interrupts (EOI), non-buffered Modus, Flankentriggerung, normaler (not special) fully nested Modus! Ferner soll IRQ0 im Main PIC ein Offset von 0x10 und IRQ8 im Secondary PIC  (Zählung im Secondary PIC beginnt bei IRQ8) ein Offset von 0x20 besitzen! Weitere nicht benötigte bzw. vorgegebene Bits in den Initialisation Command Words (ICW) sollen mit Null angenommen werden.

2\. Sperren Sie IRQ9 unter der Randbedingung, dass die restliche Interrupt-Maske nicht verändert wird!

3\. Senden Sie ein nicht spezifisches End-of-Interrupt, wobei das Interrupt vom Secondary PIC ausgelöst wurde!

4\. Wie groß ist ein Eintrag in der IVT beim x86 im Real Mode?

## Aufgabe 4 (3 Punkte)

Welche Datenabhängigkeit folgt aus der folgenden kurze Programmsequenz?

e = m + n

n = f - k
