Technische Daten zum Athlon XP o.Ä.

AMD_Fanatic

Redshirt
Mitglied seit
04.11.2003
Beiträge
4
Renomée
0
Hallo,


bräuchte für eine Präsentation folgende Daten eines beliebigen Athlon XP (Takt beliebtig)


Architektur (RISC/CISC) - Wobei ich mir schon denken kann, dass es CISC ist. ???

Virtueller Adressraum
Physikalischer Adressraum
Seitengröße
Befehlslänge (von X bis Y Bytes)
Anzahl der Befehle
Allgemeine Register
Direkt unterstützte Datentypen
Adressmodi


Wäre euch wirklich sehr verbunden, wenn ihr mir helfen könntet. Ich selber bin anscheinend zu doof zum googeln ... da find ich nämlich nix was mich weiterbringen würde. *noahnung*
 
Architektur: Der Athlon XP hat wie alle mordernen x86 Prozzis einen RISC Kern, erscheint nach außen aber als CISC CPU (eben als 686er).

Virtueller Adressraum: x86-typisch 4gb
Physikalischer Adressraum: x86-typisch 4gb
Seitengröße: *noahnung* - was meinst du damit? Die wählbaren Segmentgrößen? Gehen x86-Konform bis 4gb
Befehlslänge: Weis jetzt gerade net wie lang der längste x86-32 Befehl ist, aber 8 Byte oder so sollten es sein
Anzahl der Befehle: Das weis wohl keiner so recht ;) Zähl einfach alle von x86-16, x86-32, 3dnow/prof, mmx und sse zusammen. Vergiss aber keine Sonderbefehle wie CPUID.

Allgemeine Register(???): x86-32-typisch 4 Allzweckregister, eax, ebx, ecx und edx.
FPU, MMX, SSE und 3DNow Register nicht mitgezählt, da musst du mal D'Espice fragen.
Unterstützte Datentypen: x86-32 typisch max. 32bit Integer und die FPU gibt glaub ich 64bit her (-> D'Espice)
Adressmodi: Alle der x86 Spezifikation, und keinen mehr ;)


Du siehst also dass viele der Dinge schon durch den verwendeten Befehlssatz (eben x86) bestimmt werden, und dass es da keinen Spielraum mehr gibt.
 
Danke für eure Antworten

Zur Erklärung: Brauche die Daten, da ich einen Vergleich zwischen einer AMD/Intel CPU und einer VAX Maschine brauche ... werde morgen mal weitersuchen ... :)
 
@AMD_Fanatic

Physikalischer Adressraum: Theorethisch 64GB mit PAE möglich, praktisch 4GB

Virtueller Adressraum: Es können maximal 4GB pro Page Table gemapped werden. Das uss man sich auf der Zunge zergehen lassen: Da unterstützt die CPU 64GB, kann aber davon nur 4GB am Stück ansprechen -- strange but true :-/

Seitengröße: 4k/2MB/4MB (Ich vermute du redest vom Paging)

Befehlslänge 1 - 17 Bytes

Anzahl der Befehle: Kommt darauf an wie du zählst. Nein, ohne Witz das ist gar nicht so leicht zu bestimmen. Zählst du z.b. alle Varianten des mov Befehls als EINEN Befehl oder jede seperat....

Allgemeine Register: LOL, der ist gut :-) Einige behaupten es wären 8 (EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI), aber so allgemein sind die auch nicht.

Direkt unterstützte Datentypen: Signed Byte, Signed Word, Signed DWord, Signed QWord (aka Long Integer), Unsigned Byte, Unsigned Word, Unsigned DWord, Unsigned QWord, Packed Byte (2 Formate), Packed Word (2 Formate), Packed DWord (2 Formate), Packed QWord, BCD, Packed BCD (2 Formate), Singel Float, Double Float, Extended Float, Packed Single Float(, Near Pointer, Far Pointer

Adressmodi: Diffus :-) Viele Instruktionen haben große Restriktionen was die mögliche
Operanden spezifizierung an geht. Prinzipiell sehe ich folgende Operanden Adressiermöglichkeiten: Register direkt, Register indirekt, Register indirekt mit offset, Register Indierkt mit Offset und Index, Register Indirekt mit Skalierung sowie Base und Offset, Immediate, Immediate Indirekt, Instruction Implizit

IA32 ist ein komplexer und irregulärer Befehlssatz. Eine Instruktion besteht aus einem Opcode und bis zu fünf optionalen Teilen variabler Länge! Am einfachsten erkennt man dies am Instruktionsaufbau [o] sind optionale bytes [m] sind notwendige Bytes:

[o] Repeat Prefix______\
[o] Lock Prefix_________\
[o] Segment Override____Prefixe
[o] Address Override___/
[o] Size Overwrite____/

[m] Opcode__________\
[o] Opcode extension_\Opcode

[o] mod, reg, r/m_____\
[o] scale, index, base_\ Address Specifiers

[o] Displacement8__\
[o] Displacement16__\
[o] Displacement24__| Displacement Constant
[o] Displacement32_/

[o] Immediate8__\
[o] Immediate16__\
[o] Immediate24__| Immediate Constant
[o] Immediate32_/

Ich würde sowas als "A different beast" bezeichnen. Jedenfals gibt es einige Befehlssätze die für Assemblerprogramierer wesentlich angenehmer, da orthogonaler, sind.

P.S. Ich hab immer lieber VAX Macro gemacht, als Intel Assembler mit dem ganzen Segmentierkrampf. Wenn du noch was über die VAX wissen willst meld dich nur.
 
der Thread wandert nun in die Spezielle P3D Opteronlinksammlung , denn mit solchen Krampf muss auch der Hammer fertig werden.

So wie ich AMD verstanden habe, haben sie den AMD64 Befehlsatz deutlich entrümpelt, so sollen einige doppelte Befehle eleminiert worden sein und auch die passende Befehlslänge soll entrümpelt worden sein.

Sind aber alles Böhmische Dörfer für mich... wenn jemand so nett ist, kann ja eine kurze vergleichende Übersicht zu AMD64 und x86 gemacht werden. Oder eine Übersicht der vernichteten eleminierten Befehle von AMD für AMD64, denn die Grundbefehle von AMD für 64Bit haben gleichlautende Erweiterungen für AMD64. ;)

Allerdings hat P3D auch eine Interne Übersicht darüber...braucht man nur die Artikel durchstöbern ;)

Doping für CPUs - Möglichkeiten der Leistungssteigerung und 64-Bit CPUs für's Wohnzimmer : Innovation oder Marketinggeblubber? sind da ganz nette Ausgangspunkte.
 
Es geht doch nix über x86 Segmentierung ;D

;)

Tja, so verschieden können Geschmäker sein. Im realmode macht mir die Segmentierung aber noch mehr Spaß als im Protected Mode, obwohl eben im Realmode komplett sinnfrei :P

@henry
PAE ist so eine Sache... physikalisch lassen sich damit zwar 64gb adressieren, aber nur durch Paging - man kann also nicht auf diese 64gb gleichzeitig zugreifen...
Der Adressbus der x86-32er ist jedenfalls nur 32bit breit. PAE ist sowas wie EMM386 zu DOS Zeiten, nur schlimmer ;)
 
Original geschrieben von AMD_Fanatic
Architektur (RISC/CISC) - Wobei ich mir schon denken kann, dass es CISC ist. ???
Die aktuellen CPUs sind alle nach außen hin CISC um die Kompatibilität zu wahren. Intern werden die komplexen x86-Befehle variabler Länge jedoch in µOps fixer Länge umgewandelt - somit sind die Prozessoren rein technisch betrachtet CISC/RISC Hybride.
Virtueller Adressraum
Bis zu 64GB per PAE (Page Address Extension), ein Trick um Speicher so zu mappen dass der Adressraum auf bis zu 64GB erweiterbar ist. Wird genutzt von Windows 2000 Server, Advanced Server und Datacenter Edition sowie Windows 2003 Server usw.
Physikalischer Adressraum
Seitengröße
Alles schon beantwortet soweit, brauch ich nicht mehr drauf einzugehen.
Befehlslänge (von X bis Y Bytes)
Laut AMD 1 bis 15 Byte.
Anzahl der Befehle
Hab ich leider nicht im Kopf, da es sich aber äußerlich um eine CISC Architektur handelt, würde ich mit ca. 400 rechnen. Wenn du es ganz genau wissen willst, dann hol dir dieses Dokument und zähle die Einträge in den Tabellen ab S. 261 bis 303 :) Dummerweise sind das noch nicht alle, ich weiß dass noch 30 zusätzliche MMX-Befehle hinzukommen und einiges an 3DNow! Befehlen - und noch viel mehr. Dummerweise liegen die dafür relevante Dokumente nicht auf AMDs Webseite und sind nicht für jedermann erhältlich ohne weiteres :-/
Allgemeine Register
Was sind allgemein Register? Hier fehlt eine eindeutige Definition. Der Athlon hat die x86-üblichen Register, verfügt dank Register Renaming jedoch über eine enorme Anzahl an tatsächlich vorhandenen Register - die verwendeten werden nur über symbolische Adressen angesprochen. Aber auch hier ist das nötige Dokument nicht für die Öffentlichkeit ohne weiteres erhältlich.
Wichtig ist jedoch, dass die ALU mit einer Genauigkeit von 32-bit, die FPU mit einer Genauigkeit von 80 Bit und MMX mit einer Genauigkeit von 128 Bit bei INT oder 64 Bit bei FLOAT rechnet. Wie die Mantisse und der Exponent bei den für die Fließkommezahldarstellung vorhandenen 79 Bit aussieht weiß ich jedoch leider nicht, ich vermute mal dass so um die 25 Bits für den Exponenten und 54 Bit für die Mantisse verwendet werden.
Direkt unterstützte Datentypen
Adressmodi
Braucht man nichts mehr zu sagen.


Btw., falls du den Prof/Lektor/Aufgabensteller/Wenauchimmer beeindrucken willst, dann erzähl ihm, dass die VAX beim Assemblieren ein sog. Drei-Operandenformat benötigt hat, nämlich aus

BEFEHL OP1 OP2 OP3

bei den meisten Befehlen, wobei OP1=Ziel, OP2=2. Operand, OP3=1. Operand

Wenn ich mich nicht irre, die beiden Operanden können auch vertauscht sein. Die Intel Architektur x86 hingegen unterstützt nur das 2-Operanden Format wobei OP1 immer gleich dem Ziel ist.
Um also den Inhalt von Register R2 auf R3 zu addieren und das ganze in R4 zu speichern, sieht das ganze so aus:

VAX:
ADD R4, R3, R2

x86:
ADD R2, R3
MOV R4, R2
 
@AMD_Fanactic

Architektur: CISC Instruction Set, Superskalere Mirkro-Architektur

@D'Espice

> [Befhelslänge] Laut AMD 1 bis 15 Byte.

Hab ich auch gerade gelesen. Darauf kann ich mir aber keinen Reim machen den schon der 386 hatte 17 bytes als max. Instruktionslänge???

> Wie die Mantisse und der Exponent bei den für die Fließkommezahldarstellung vorhandenen 79 Bit aussieht weiß ich jedoch leider nicht
Code:
+------------+---------------------------+-------------------+-------------------------+ 
| Sign (#79) | 15 Bit Exponent (#78-#64) | Integer Bit (#63) | 63 Bit Mantisse (#62-#0)|
+------------+---------------------------+-------------------+-------------------------+
> Btw., falls du den Prof/Lektor/Aufgabensteller/Wenauchimmer beeindrucken willst, dann erzähl ihm, dass die VAX beim Assemblieren ein sog. Drei-Operandenformat benötigt hat, ...

Das kommt auf den Befehl an. Für die meisten Befehle gibt es 2 und 3 Operanden Versionen mit verschiedenen Opcodes (z.B. ADDW2 und ADDW3 mit 0xA0 und 0xA1). Das VAX Instruction Set kennt 0-6 Operanden Befehle. Das schöne dabei ist, dass man fast immer alle Addressmodi für jeden Operanden verwenden kann (Klar geht immediate z.B. als Ziel nicht).

z.B.
RET
BNEQ Loop
MOVW #1, R1
ADDW3 #17, R1, --(R0)
CMPP4 R1, STRING, (R4)+, @#10000
CMPC5 @8(R11), (R4)[R3], R0, R2, 4(R4)[R3]
ADDP6 #8, R7 , #8, R9, #9, @(R12)+

> Wenn ich mich nicht irre, die beiden Operanden können auch vertauscht sein

Jups, bei der VAX kommen inmmer erst die Source-Operanden und dann das Target am Schluss (ist bei M68k auch so).

... Naja die VAX hatte schon einiges -- Es hat sogar mal die 11/780 mit einer Option gegeben die es erlaubt hat USERDEFINED Microcode auf einer SRAM Karte zu haben. Leider habe ich davon nix mehr gehört...
 
Zurück
Oben Unten