Ισχυει αυτο για την CPU?

Ας χαλαρώσουμε και λίγο... Aς κουτσομπολέψουμε μια σταλιά, ας πούμε και κανένα ανέκδοτο!

Συντονιστές: theiapythia, Super-Moderators

Απάντηση
Άβαταρ μέλους
Connor MacLeod
Honorary Member
Δημοσιεύσεις: 13373
Εγγραφή: 07 Φεβ 2005 13:36
Τοποθεσία: Κοζάνη
Επικοινωνία:

Ισχυει αυτο για την CPU?

Δημοσίευση από Connor MacLeod » 11 Οκτ 2011 20:00

Επειδη δεν ειμαι και πολυ σίγουρος ειπα να μην επιμείνω.
Ειχα μια συζητηση με εναν ανθρωπο για το αν η cpu κανει μονο την πραξη της πρόσθεσης.

Ισχυει ή οχι? μπορει να κανει αλλη πραξη εκτος απο πρόσθεση η cpu?
Meizu MX5(5.5"/8Core/3GB/32GB/Sony IMX220 20.7MP)
PC 27'' (3770@3.4/16GB/560SE/500GB SATA3/650W S12G)
Mac mini (2.5GHz/8GB/6630/90GB GorsairGT)

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Ισχυει αυτο για την CPU?

Δημοσίευση από dva_dev » 11 Οκτ 2011 23:03

Γενικά για τις cpu δες εδώ.
http://en.wikipedia.org/wiki/Arithmetic_logic_unit

Τώρα επειδή υπάρχουν και εξειδικευμένοι επεξεργαστές (όπως γραφικών και μαθηματικοί), εκεί ίσως τα πράγματα αλλάζουν πολύ (εκτός από απλές αριθμητικές πράξεις, κάνουν και διανυσματικές και δεν ξέρω τι άλλο), και θέλει περισσότερο (εξειδικευμένο) ψάξιμο για το τι παραπάνω κάνουν.

Άβαταρ μέλους
c0d3punk
Honorary Member
Δημοσιεύσεις: 1076
Εγγραφή: 15 Σεπ 2008 22:32
Τοποθεσία: Puerto pollo
Επικοινωνία:

Ισχυει αυτο για την CPU?

Δημοσίευση από c0d3punk » 11 Οκτ 2011 23:16

Ε ναι βασικά όποιο βιβλίο πληροφορικής σχετικό με συστήματα υπολογιστών και να ανοίξεις, αναφέρει πως οι πράξεις που γίνονται στα αριθμητικά συστήματα είναι οι βασικές αριθμητικές πράξεις με ένα τύπο πρόσθεσης.

π.χ. όταν εμείς υπολογίζουμε ότι 5 επί 7 κάνει τριανταπέντε, η αριθμητική και λογική μονάδα του επεξεργαστή κάνει αυτή την πράξη προσθέτοντας 7 φορές το 5. Δηλαδή, 5+5=>10+5=>15+5=>20+5=>25+5=>30+5=>35

η αφαίρεση γίνεται με με τη μέθοδο του συμπληρώματος (ψάξτo μόνος σου μην ανοίγω βιβλία βραδιάτικα! :-P).

και η διαίρεση γίνεται με βάση τη συμπληρωματική αφαίρεση δηλαδή 35-7=>28-7=>21-7=>14-7=>7-7=>0 δηλαδή αφαιρεί το 7 πέντε φορές από τον αριθμό.

αυτά εδώ και χρόνια που γράφονται τα βιβλία που διαβάζουμε. Μια σύγχρονη βιβλιογραφία θα σου πει περισσότερα όπως τα λέει και ο dva_dev.
like ants in a colony we do our share
but there's so many other f****' insects out there || Ανανεωμένα Παρτάλια || biZfind.gr

Άβαταρ μέλους
Connor MacLeod
Honorary Member
Δημοσιεύσεις: 13373
Εγγραφή: 07 Φεβ 2005 13:36
Τοποθεσία: Κοζάνη
Επικοινωνία:

Ισχυει αυτο για την CPU?

Δημοσίευση από Connor MacLeod » 13 Οκτ 2011 09:11

c0d3punk,
Εδω γράφει βασικα :
Most ALUs can perform the following operations:

Bitwise logic operations (AND, NOT, OR, XOR)
Integer arithmetic operations (addition, subtraction, and sometimes multiplication and division, though this is more expensive)
Bit-shifting operations (shifting or rotating a word by a specified number of bits to the left or right, with or without sign extension). Shifts can be seen as multiplications and divisions by a power of two.
Και παρακάτω:
Engineers can design an Arithmetic Logic Unit to calculate any operation
Οπότε δεν κανει μόνο πρόσθεση. Σωστα?

:think:
Meizu MX5(5.5"/8Core/3GB/32GB/Sony IMX220 20.7MP)
PC 27'' (3770@3.4/16GB/560SE/500GB SATA3/650W S12G)
Mac mini (2.5GHz/8GB/6630/90GB GorsairGT)

Άβαταρ μέλους
c0d3punk
Honorary Member
Δημοσιεύσεις: 1076
Εγγραφή: 15 Σεπ 2008 22:32
Τοποθεσία: Puerto pollo
Επικοινωνία:

Ισχυει αυτο για την CPU?

Δημοσίευση από c0d3punk » 13 Οκτ 2011 11:32

ναι όλες τις πράξεις μπορεί να τις κάνει αλλά υπό την μορφή πρόσθεσης.

δηλαδή η πρόταση "κάνει μόνο πρόσθεση" είναι εν μέρη λάθος και εν μέρη σωστή. Η ALU κάνει όλες τις πράξεις αλλά υπό την μορφή πρόσθεσης, γιατί δεν έχει βρεθεί άλλος τρόπος να κάνει τις πράξεις. Αν κατανοούσες το παράδειγμά μου θα καταλάβεις (δεν μπορώ να δώσω καλύτερο παράδειγμα, i'm awful teacher :-)).

τα υπόλοιπα που περιγράφεις είναι λογικές πράξεις που κάνει η ALU.

Αν θέλεις να μάθεις κάτι τόσο εξειδικευμένο μην βασίζεσαι σε ένα wiki. Πήγαινε στην βιβλιοθήκη της σχολής σου και άνοιξε ένα βιβλίο εισαγωγής στα πληροφορικά συστήματα.
like ants in a colony we do our share
but there's so many other f****' insects out there || Ανανεωμένα Παρτάλια || biZfind.gr

Άβαταρ μέλους
deninho
Super Moderator
Δημοσιεύσεις: 7066
Εγγραφή: 17 Ιαν 2004 16:01
Τοποθεσία: σ'άλλη διάσταση
Επικοινωνία:

Ισχυει αυτο για την CPU?

Δημοσίευση από deninho » 13 Οκτ 2011 13:32

Μόνο πρόσθεση ξέρει να κάνει. Απλώς τον προγραμματίζεις, ώστε, με τη χρήση της πρόσθεσης να κάνει και τις άλλες μαθηματικές πράξεις.

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Ισχυει αυτο για την CPU?

Δημοσίευση από cherouvim » 13 Οκτ 2011 14:00

Δεν κάνει μόνο πρόσθεση.

Στο quote που έβαλες λέει πχ για το shifting. Αν πχ ρωτήσεις το CPU πόσο κάνει 5*4 δεν θα κάνει 5+5+5+5 αλλά 5<<2 το οποίο θα δώσει πολύ πιο γρήγορα τη σωστή απάντηση.

Άβαταρ μέλους
c0d3punk
Honorary Member
Δημοσιεύσεις: 1076
Εγγραφή: 15 Σεπ 2008 22:32
Τοποθεσία: Puerto pollo
Επικοινωνία:

Ισχυει αυτο για την CPU?

Δημοσίευση από c0d3punk » 13 Οκτ 2011 15:11

τι είναι το 5<<2 ? .... 5x2=> 10x2=>20 ?

άντε να δούμε και ένα άλλο που βρήκα:
Για κάθε ένα σύστημα, οι ALU είχαν διαφορετικούς σχεδιασμούς συχνά αρκετά πολύπλοκους. Έτσι καθιερώθηκε το αριθμητικό σύστημα του συμπληρώματος ως προς 2, μια αριθμητική παράσταση που καθιστά ευκολότερους τους υπολογισμούς για την ALU.

Με αυτό το αριθμητικό σύστημα, η αφαίρεση επιτυγχάνεται με την πρόσθεση του αρνητικού αριθμού (π.χ. αντί για 5-3 , 5+(-3) ), και έτσι εξουδετερώνεται η ανάγκη για **εξειδικευμένα κυκλώματα για την αφαίρεση.
** Δηλαδή κατά πάσα πιθανότητα αυτό να έχει λύθεί πια...
σαν μετάφραση του quote του Connora:
Οι περισσότερες ALU, μπορούν να εκτελέσουν τις παρακάτω πράξεις :

- Ακέραιες αριθμητικές πράξεις (πρόσθεση, αφαίρεση και μερικές φορές πολ/σμο και διαίρεση, αν και η υλοποίηση τους είναι ακριβή).
- Λογικές πράξεις (και, ή , όχι)
- Μετατόπιση η περιστροφή μιας λέξης τόσο όσο ενός καθορισμένου αριθμού μπιτς, προς τα αριστερά ή δεξιά, με πρόσημο ή χωρίς. Οι μετατοπίσεις μπορούν να υλοποιηθούν σαν πολλαπλασιασμοί με το 2 και ως διαιρέσεις με 2.
like ants in a colony we do our share
but there's so many other f****' insects out there || Ανανεωμένα Παρτάλια || biZfind.gr

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Ισχυει αυτο για την CPU?

Δημοσίευση από cherouvim » 13 Οκτ 2011 15:17

Το << και >> είναι bitshift operators.

Ενδεικτικά:
5<<1 = 10
5<<2 = 20

Το 5 στο binary είναι 101.
Αν το κάνεις shift αριστερά μία φορά (<<1) γίνεται 1010 δηλαδή 10
Αν το κάνεις shift αριστερά δύο φορές (<<2) γίνεται 10100 δηλαδή 20

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Ισχυει αυτο για την CPU?

Δημοσίευση από dva_dev » 13 Οκτ 2011 17:57

Για λογικές πράξεις (not, and, or, xor) δεν ενδιαφέρεσαι;

Και μόνο του αυτό, αποκλείει το ότι η οποιαδήποτε cpu κάνει μόνο πρόσθεση.

Άβαταρ μέλους
c0d3punk
Honorary Member
Δημοσιεύσεις: 1076
Εγγραφή: 15 Σεπ 2008 22:32
Τοποθεσία: Puerto pollo
Επικοινωνία:

Ισχυει αυτο για την CPU?

Δημοσίευση από c0d3punk » 13 Οκτ 2011 22:34

cherouvim έγραψε:Το << και >> είναι bitshift operators.

Ενδεικτικά:
5<<1 = 10
5<<2 = 20

Το 5 στο binary είναι 101.
Αν το κάνεις shift αριστερά μία φορά (<<1) γίνεται 1010 δηλαδή 10
Αν το κάνεις shift αριστερά δύο φορές (<<2) γίνεται 10100 δηλαδή 20
ναι άρα προσθέτεις ένα bit αριστερά ή δεξιά για να γίνει το shift.
dva_dev έγραψε: Για λογικές πράξεις (not, and, or, xor) δεν ενδιαφέρεσαι;

Και μόνο του αυτό, αποκλείει το ότι η οποιαδήποτε cpu κάνει μόνο πρόσθεση.
Μιλάμε για ποιές αριθμητικές πράξεις κάνει, όχι για λογικές.
like ants in a colony we do our share
but there's so many other f****' insects out there || Ανανεωμένα Παρτάλια || biZfind.gr

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Ισχυει αυτο για την CPU?

Δημοσίευση από cherouvim » 13 Οκτ 2011 22:41

c0d3punk έγραψε:ναι άρα προσθέτεις ένα bit αριστερά ή δεξιά για να γίνει το shift.
Δεν προσθέτει τίποτα. Μετατοπίζει τα bits αριστερά ή δεξιά.

πχ σε 8bitο register που αναπαριστά unsigned νούμερο εύρους 0-255 με αλλεπάλληλα << στο 5 έχουμε :

Κώδικας: Επιλογή όλων

00000101 == 5
00001010 == 10
00010100 == 20
00101000 == 40
01010000 == 80
10100000 == 160
01000000 == 64 &#40;overflow&#41;
10000000 == 128
00000000 == 0 &#40;overflow&#41;

Άβαταρ μέλους
c0d3punk
Honorary Member
Δημοσιεύσεις: 1076
Εγγραφή: 15 Σεπ 2008 22:32
Τοποθεσία: Puerto pollo
Επικοινωνία:

Ισχυει αυτο για την CPU?

Δημοσίευση από c0d3punk » 13 Οκτ 2011 23:37

χμμ όντως αν γίνει έτσι όπως τα λέω εγώ τότε δεν έχουμε αυτά τα αποτελέσματα γιατί είναι σαν να κάνω πρόσθεση:

00000101 (== 5)
+0000001
________
00000110 = 6


Σου έχω όμως δύο απαντήσεις:

1) Και πάλι έχουμε μετατόπιση προσθέτοντας ένα μηδενικό bit :-P

2)Σύμφωνα με το http://en.wikipedia.org/wiki/Bitwise_operation η μετατόπιση αυτή γίνεται με την χρήση λογικών πράξεων και όχι αριθμητικών.
The bitwise NOT, or complement, is a unary operation that performs logical negation on each bit
χαρακτηρισμό που χρησιμοποιεί για όλες τις πύλες.

την ευλογία σας cherouvim :-D
like ants in a colony we do our share
but there's so many other f****' insects out there || Ανανεωμένα Παρτάλια || biZfind.gr

Άβαταρ μέλους
xultimatex
Honorary Member
Δημοσιεύσεις: 2505
Εγγραφή: 26 Ιούλ 2003 13:02
Τοποθεσία: Ξάνθη
Επικοινωνία:

Ισχυει αυτο για την CPU?

Δημοσίευση από xultimatex » 14 Οκτ 2011 15:45

Γιατί διαχωρίζεις τις πράξεις σε λογικές και αριθμητικές; Όταν έισαι σε δυαδικό σύστημα η αριθμητική πρόσθεση γίνεται με το λογικό AND. Δεν υπάρχει τίποτα "πιο αριθμητικό" μέσα στην cpu. Και οι πράξεις που γίνονται είναι οι γνωστές λογικές (and xor or κτλ).

Απο κει και πέρα, κάθε κατασκευαστής βγάζει επεξεργαστές για διάφορους σκοπούς. Αυτό σημαίνει ότι ένας επεξεργαστής που προορίζεται για κομπιουτεράκι θα έχει έτοιμη μια συνάρτηση για τις πράξεις, γραμμένη στο hardware πλεον και θα κάνει πολύ πιο γρήγορα την διαίρεση από έναν γενικής χρήσης που περιλαμβάνει και συναρτήσεις διαχείρισης μνήμης αλλά όχι όλες τις πράξεις.
:arrow: Αν προσπαθείς πολύ για να πετύχεις κάτι, ίσως το κάνεις με λάθος τρόπο...

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Ισχυει αυτο για την CPU?

Δημοσίευση από cherouvim » 14 Οκτ 2011 17:40

xultimatex έγραψε:Όταν έισαι σε δυαδικό σύστημα η αριθμητική πρόσθεση γίνεται με το λογικό AND.
Πως;

Απάντηση

Επιστροφή στο “Χαλαρά κι Ανάλαφρα”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης