Quins són els processadors d'ordinador més comuns que s'utilitzen avui?

La majoria dels processadors/CPU s'utilitzen avui, tenen una mica de compte que és un poder de 2 (normalment 32 i 64, però també 16, 8, 8 i 4 bits).

Tot i que el significat del recompte poc no és consistent (alguns diuen que és la mida de la paraula, la mida dels registres, l'amplada de les instruccions, les dades o l'amplada del bus d'adreça, etc.Tots aquests són gairebé sempre poders de 2.

Sé que hi ha algunes excepcions a això, per exemple l'Intel 8086 tenia un bus de 20 bits, però com he dit que és Normalment Un poder de 2.

11 respostes 11

bytes de 8 bits@ label: textbox encoding of the bytes as values in the hexadecimal format

Massa d'això creix fora de l'adopció dels bytes de 8 bits. Això es va fer popular amb la introducció de la família IBM 360 d'ordinadors el 1964. En un assumpte del Journal Institucional IBM, es va oferir una explicació de l'elecció:

Mida dels caràcters, 6 contra 4/8: En mida de caràcter, el problema fonamental és que els dígits decimals requereixen 4 bits, els caràcters alfanumèrics necessiten 6 bits. S' han considerat tres alternatives obvies - 6 bits per a tots, amb 2 bits perduts en dades numèriques; 4 bits per a dígits, 8 per a alfanumèrics, amb 2 bits perduts en alfanumèric; i 4 bits per a dígits, 6 per al alfanumèric, que requereix l' adopció d' un 12 bits Mòdul com a element mínim de l' adreçable. El caràcter de 7 bits, que S' ha incorporat una reserva binària de parells de dígits decimals, també va ser Es va examinar breument.

L' aproximació 4/6 s' ha rebutjat perquè (a) s' ha desitjat que tingui la Eversitat i poder de manipular fluxos de caràcters i adreçar-se Caràcters individuals, fins i tot en models on l'aritmètica decimal no és Usat, (b) limitar el caràcter alfabet a 6 bits sembla Qüestions d'enginyeria d'aquest enfocament Podria costar més que els bits perduts del caràcter.

L'enfocament recta 6, usada a IBM 702-7080 i 1401-7010 famílies, així com en sistemes d'altres fabricants, tenien la Els avantatges de l'ús familiar, l'equipament I/O existent, simple Estructura del camp d' especificació, i de commensurabilitat amb un 48 bits Paraula en coma flotant i un camp d' instruccions de 24- bits.

L'enfocament 4/8, usada a IBM 650-7074 família i en un altre lloc, tenia Una major eficiència de codi, una pèrdua de bits en el conjunt de l' alfabet (es permet l' ús de la programació) El conjunt per a créixer), i commensurabilitat amb un punt flotant de 32/64 Paraula i un camp d' instruccions de 16 bits. El més important d' aquests factors L'eficiència de la codificació, que prové del fet que l'ús de Les dades numèriques en els registres de negocis són més que el doble de freqüent El alfanumèric. Aquesta eficiència implica, per a un maquinari donat inversió, millor ús d'emmagatzematge del nucli, cintes més ràpides, i més discos durs.

En general, un byte de 8 bits permet un joc de caràcters raonablement gran, per als estàndards de l' hora, i també permet dos dígits BCD per byte.

El moviment a l' adreça de bytes

La prioritat en els dissenys d'ordinadors més primers era processar els números tan ràpidament com sigui possible. Un número es va emmagatzemar normalment en una paraula màquina, i l' interval numèric que es determina la mida de la paraula. Les instruccions eren normalment una sola paraula, i sovint hi havia una única adreça com a part de cada instrucció. La mida del camp Adreça en instruccions ha determinat la mida de la memòria. La IBM 704/709 és un exemple; tenia un màxim de 4096 paraules de 36 bits, amb sis caràcters per paraula, cada un de 6 bits. Les adreces són 12 bits.

Com que l' interval d' ús per als ordinadors expandits, gestionar les dades de text es van convertir en més i més importants. Fer-ho en una màquina amb una paraula és cumberosa, en el millor dels casos. Una màquina de bytes us permet accedir fàcilment als caràcters individuals, però requereix un camp d' adreça més gran. Al mateix temps, la memòria del nucli magnètic es permet construir molt Més grans records que els tubs de buit, l'emmagatzematge d'electrostàtics o les línies de retard.

Aquests desenvolupaments bàsicament han forçat els ordinadors a tenir espais d'adreça més grans, i han acabat la pràctica de tenir una adreça en cada instrucció.

Elements de dades més grans

Òbviament fa que les coses més simples tinguin un nombre de bytes per element de dades. La simpicitat d'aquest nivell és extremadament pagada, perquè sempre ha estat important fer que un ordinador executi tan ràpid com sigui possible dins d'un pressupost limitat de parts electrònics (tubs d'hora, transistors des d'aleshores). Per tant, dos bytes (16 bits) es converteixen en una mida òbvia.

Per mides més grans, hi ha dos factors que apareixen en el disseny d'electrònica:

S' estan comptant les coses

Les instruccions de xifratge sovint necessiten comptar amb els bytes (o bits) dels elements de dades. Usar els poders de dos fa que l'electrònica d'aquests taulells sigui més simple. Per comptar entre 4 bytes, necessiteu un comptador de 2 bits, que pot tenir valors des de 0 a 3. Comptar a través de tres bytes encara necessita un comptador de dos bits, però un dels seus valors no té sentit i ha de ser tractat com un cas especial en el maquinari.

Enviar dades sobre una línia sèrie requereix comptar amb els bits de cada element, el qual és un altre benefici dels bytes de 8 bits. Un comptador de 3 bits els manegarà sense cap necessitat especial.

L' IBM 360 va escollir adreces de 32 bits (encara que només va permetre adreces de memòria de 24 bits per la seva primera dècada), i una vegada que es va establir, era molt més fàcil competir amb IBM usant bytes de 8 bits i adreces de 32 bits del que si volguessis fer alguna cosa diferent.

Recupera la memòria i l' alineació de dades

L' obtenció de les dades de la memòria és més simple si els elements de dades estan relacionats. Això vol dir que les seves adreces són múltiples de la seva mida. Per exemple, en una màquina de bytes adreçada, com ara IBM 360, un sol byte pot estar en qualsevol adreça. Un element de 2-byte (16- bit) com a "alineat" si està en una adreça fins i tot xifrada. Un element de quatre perbyte (32 bits) s' alinearà si la seva adreça és un múltiple de 4.

Molts dissenys d'ordinadors dels anys 60 a través dels anys 90 van tenir records que poguessin recollir 4 bytes en una operació, començant per una adreça que era un múltiple de 4. Si els vostres elements de dades estan alineats, aleshores esteu garantits de poder recuperar dos o quatre ítems en un single Llegeix de la memòria. Si no estan alineats, de vegades necessites dos guàrdies. Això requereix més complexitat en el sistema d' accés de memòria, per reconèixer que l' operació està desordenada i genera l' obtenció extra. Aquesta complexitat, i l'ajuda extra, alenteix les coses.

Els elements més grans de 4 bytes necessiten dos ports, però la vida és més senzilla si els teus elements més grans són 8 bytes, i alineats als límits de 8 bits. Llavors sempre necessiteu exactament dues arrepressades. Si teniu elements de 8 abyte que no estan alineats, llavors necessiteu tres Arreplega.

En sistemes moderns, les recerques sempre són de línies completes de la memòria cau, normalment 32 o 64 bytes. Aquests són sempre alineats, i alineats elements de dades que s' ajusten dins d' ells sempre arriben complets.

Alguns dissenys d'ordinadors consideren una recuperació erròniada com un error de programa, i maten programes que n' executen un. Els sistemes basats en x86 no ho fan, però han de pagar el preu de la complexitat. S'executen Més ràpid amb dades alineats, de manera que normalment s' usa encara que no sigui obligatori.

Sistemes de 24- bits

He utilitzat un sistema de 24 bits, un ordinador ICL 1900. S'utilitzaven 6 bits, 4 per 24- bits. Aquests bytes de 6 bits el limitaven a la petició de text, i els punters de 24 bits limitaven a 16MB de RAM, que és menor per als estàndards d' avui.

Un sistema de 24 bits més modern amb bytes de 8 bits encara estaria limitat a 16MB de memòria fàcil adreçable, i pagaria els costos dels comptadors amb estats no desitjats, i els elements de memòria que s'han desaparellat, o malgastat un byte de memòria per cada enter de 24 bits. Un sistema de 32 bits seria més capaç, i es pot construir molt barat en la tecnologia d'avui.

Lliçós de la història

En Ben hi ha un parell de sistemes informàtics influents que tenien enters de 32 bits i punters, però que han fet servir el contacte de 24 bits. Són la Motorola 6800 i els IBM 360. En ambdós casos, només s'utilitzen els 24 bits més baixos d' una adreça, però s' han emmagatzemat adreces en memòria en 32 bits.

Com que aquests sistemes estaven limitats a 16MB de RAM, els programadors van emmagatzemar altres dades als 8 bits de recanvi. I quan 16MB de la RAM clarament no era suficient i els dissenys es van expandir a través de 32 bits, les dades emmagatzemades en bits van esdevenir un problema seriós, si es tracta com a part de l'adreça.

A la família 6800, els programes existents s'havien de canviar per aturar-se utilitzant els no-més-bitons. Això va ser més notable en la indústria de l'ordinador per programari Macintosh en els finals dels anys 80, quan s'actualitzava per la compatibilitat de 68020, però el mateix va passar a Amiga, i probablement altres sistemes de 6800 basats en el sistema.

En els successors de IBM 360, els programes d'adreça de 24 bits encara podrien ser executats, com podrien programes usant adreces més grans. Però només es podrien fer servir 31 dels possibles 32 bits d'adreça; una mica d' adreça havia estat sacrificat per deixar que el maquinari expliqui la diferència entre els dos tipus de codi.

Tothom que va dissenyar una arquitectura general deficient amb l'acció més gran de 32 bits en sabia d'aquests exemples, i quant de dolor havien causat. Així que mirem les opcions de la mida de l'adreça:

L'acció de 40 bits implica complexitat electrònica i alineació, i clarament, no va durar gaire. Només permet tractar 1024GB, i com a 2022, això ja hauria esdevingut un problema per a alguns mercats.

Les relacions amb 48 o 56 bits són tan complexes com 40 bits, i mentre probablement durien més temps, quan hagueu anat fins aquí, també hauríeu d'anar tot el camí.

El 64 bits és més senzill de construir que 40, 48 o 56 bits. Això durarà més. La seva mida de registre coincideix amb mides estàndards de dades en coma flotant. Sembla lògic.

El primer microprocessador de post-de 32 bits que es va publicar va ser el DEC Alpha el 1992. El projecte va començar el 1988, inicialment va apuntar a mantenir l'arquitectura de 32 bits VAX rellevant en el llarg termini. Els dissenyadors es van adonar ràpidament que això era poc pràctic, i van dissenyar un nova arquitectura Volia durar com a mínim 25 anys. Per tant, es van dirigir 64 bits, per assegurar-se que no es van escapar de l'espai d'adreça.

Fer ús d'un competidor a Alpha que no era de 64 bits, evidentment, tindria un problema de màrqueting amb "per què no és de 64 bits?" Preguntes. Així doncs, 64 bits es va convertir en el consens. La més recent arquitectura RISC-V fa una mica de disposició per a l'acció de 128 bits, tot i que això encara no ha estat dissenyat.

Un detall important: cap processador actual de 64 bits pot tenir 64 bits de memòria connectat. Cap d'ells té prou línies d'adreça. Això no importa. Les implementacions futures es poden donar més línies d' adreces. Els programes s'han de desestimar utilitzant els bits d'adreça "spare," però és pràctic fer, i els sistemes operatius es poden dissenyar per a rebutjar aquest ús.

Tenir el registre de 2n bits, permet que els bits en els registres siguin tractats amb un nombre enter de bits:

L'adreça d'una mica en un registre de 8 bits necessitarà 3 bits. L'adreça d'un registre de 16 bits necessitarà 4 bits. Però, adreçant una mica en un registre de 12 bits necessitarà 3.8... bits. L'hauries d'arrodonir a 4, per tant, perdre..0,4 d'una mica.

  • Botó de desplaçament immediata: la distància del desplaçament es desa en les instruccions.
  • Immediatament de lectura: llegeix una mica per a un registre, s' especifica el nombre de bits en la instrucció.
  • Llegint o escriure una mica des d' un camp de memòria gran: Màscara (bit savi i) per obtenir bits superiors de l' adreça i usar- los com a adreça dels bytes, màscara (bit savi i) per obtenir bits més baixes de l' adreça i usar- los com a desplaçament bit.

No sempre utilitzem registres per especificar el temps. Sovint utilitzem una adreça immediata (la direcció està en les instruccions). Fins i tot el braç fa això, i no té cap contacte immediat (a nivell de bytes). Quan tenim l'adreça en un registre, sovint estem tractant amb més de 32 bits, de manera que ha de marcar l'adreça per obtenir el número de bytes i el número de bits. Això només funciona gràcies al poder de 2.

La raó més comuna és perquè els ordinadors usen el sistema binari, on Una mica pot ser un zero o un. Si els ordinadors utilitzen valors ternaris per als bits, llavors ho tindríem tot en poders de 3.

Pel que fa a la RAM/memory:

Un nombre de N bits en un bus d' adreces (emprat per a seleccionar una adreça) pot adreça 2^N bytes. Cada vegada que el nombre de bits d' adreces augmenta N+1 , automàticament L' espai addressable augmenta en un factor de 2.

Els fabricants usaran naturalment la capacitat màxima d' adreces Quan s' incloguin fitxes de memòria en el disseny, la mida de la memòria serà natural Estar en poders de dos.

Pel que fa a les mides de registre:

La mateixa raó per la qual s'aplica, ja que internament el maquinari pot adreçar una mica en el registre usant el seu número, que un altre cop està en binari notació.

(Tot això és només una supposició i una simplificació enorme de la De fet, situació real. Estic segur que un enginyer elèctric serà capaç de fer-ho demostrar per què els circuits basats en la lògica binària, naturalment. Feu servir un poder dos. Tal i com ha demostrat l'Intel 8086, altres números són possibles, Però pot ser més costós per fabricar.)

Tal i com va escriure en RonJohn, la indústria delordinador, va empènyer IBM, estandarditzada en bytes de 8 bits per als ordinadors generals.

Després d'això, hi ha avantatges interns amb l'ús de dos poders d'això - permet que tot sigui alineat quan s'utilitzen col·leccions de mida diferents dels bytes, i permet diferents bits de l' adreça per a ser traslladats diferents llocs - p. ex. a on voleu anar a la pàgina cau/ blocada/ page. A on a la pàgina cau/ blocada. Això requeriria una zona lletja (i lenta) si alguna cosa més d'una potència de dos s'utilitzés.

Per exemple, podeu tenir 32 o 64 graus, un bus de memòria 64 o 128 bits, 128 bits o 256 bit línies de memòria cau, 512 bytes (=4096 bit) blocs al disc, 4096 bytes (=32768 bit) a la memòria, etc. Mentre tots aquests siguin poders de dos, els límits entre ells seran tant com sigui possible en els mateixos llocs, i les adreces es divideixen per tractar-se, cosa que porta a un maquinari més simple.

Si per exemple haguéssiu de llançar una estructura de 25 bits o 48 bits allà dins i voleu tenir una sèrie d'ells, hi hauria d'haver un espai perdut o acabaríeu tenint elements dividits per les línies de la memòria cau, pàgines de memòria, etc. i necessitaria una divisió usant tots els bits per determinar quin element hi havia una adreça.

La part alineament d'això no importa tant com s'utilitza - per exemple, les fitxes d'Intel/AMD no tenen penes per a dades desaparellades en el nivell de bytes, però una mica d'enginyeria moderna s'ha ficat en això.

També funcionaria bé si la unitat més baixa era una sèrie de bits que s'utilitzen més amunt - per exemple, si un byte era 7 bits, els altres valors serien 14, 28, 56, 12, 12, 2... De fet, moltes arquitectures més antigues i algunes CPU més especialitzades de paraula com les DSP empren diferents mides de paraules, particularment si les dades i la memòria del programa es desen separadament (arquitectura de Harvard).

Pàgina de la Viquipèdia en la mida de la paraula elecció a l' arquitectura de l' ordinador Té una taula bonica amb una lot d'arquitectura de l'ordinador més antiga amb mides de byte/words que no són un poder de dos. En aquesta pàgina també hi ha una caixa a la cantonada superior dreta amb enllaços a pàgines individuals per a moltes mides no convencional de paraules (p. ex., 12 18, 24, però també 31, 36, 45 (!) etc.

Una àrea on la mida dels bytes/ paraula té un impacte significatiu està en compiladors; i.e. El vostre compilador C necessita saber quants bits estan disponibles en els registres de contacte (p. e. 16/24/ 32/ 64 bit), i molts aspectes que flueix des d' aquest (p. e., com es desen les matrius d' enters en memòria i com el codi per accedir a que es genera el compilador).

El codi construït per a una mida de paraula és llavors normalment incompatible amb el codi construït per a d' altres mides de paraules, fins i tot si la CPU en qüestió hagués d' usar exactament la mateixa codificació per al seu llenguatge d' assemblador.

A més, si el vostre magatzem de dades és binari - en els vells dies no va ser normal només tirar una pàgina de memòria en un fitxer i llegir- lo més tard - això es trenca completament si les dues màquines usen mides de paraules diferents (fins i tot si altres aspectes, com ara endianescyCity name (optional, probably does not need a translation) , són els mateixos).

Tot això porta a la indústria a un nombre més petit i més petit de mides de paraules, com molts altres aspectes tecnològics s'han apoderat durant els anys. Com que l' usuari atlt-cllips-delor ha esmentat en la seva resposta, un (potser menor) aspecte aquí podria ser que si teniu un enter dintre de la vostra CPU, potser només internament/ en hardware, on voleu desar la localització d' una mica dintre d' un registre (p. ex., un valor dinàmic des de 0 a la mida de la paraula de la caixa registradora), llavors tenir una amplada de registre que és un poder de 2 evitar residus i alguns estats d' error (p. e., adreçant una mica més enllà de la mida de la paraula no potència de dues dimensions).

És coincidència, o només tothom copiant a tots els altres. No hi ha una raó tècnica profunda que el nombre de bits hauria de ser un poder de dos. (No obstant això, hi ha una raó tècnica profunda que el nombre de valors possibles és un poder de dos).

Un processador amb 24 o 31, o 60 paraules bits funcionaven perfectament bé. Els processadors permeten la precisió ampliada tenen un tipus de punt flotant de 80 bits (aquest seria el processador x86 avui i els processadors 68k en el passat).

Quan s' emmagatzemen les matrius de bit, heu de dividir enters pel nombre de bits d' una paraula. Aquí teniu un lleuger avantatge per als poders de dos, però una instrucció dividida per un específic La no potència de dos enters és bastant simple. Quan vulgueu recollir números petits en una matriu de bit, és agradable si el nombre de bits del petit nombre divideix el nombre de bits d' una paraula, de manera que una paraula de 60 bits us permet emmagatzemar 60 bits, 30 x 2 bits, 20x3 bits, 15x4 bits, 12x5 bits, o 10x6 bits en una paraula.

Per a codificar caràcters, tenir 12 bytes en comptes de 8 en comptes de fer possible desar tots els punts de codi unicode en dos bytes en comptes de 1, 2, 3 o 4, el qual faria de gran quantitat de codi de processament de text més ràpid.

BTW: Les fitxes de RAM tindran una mida que és un (poder de 2) bits. Fins que Apple vaixells ordinadors amb fitxes 12GB RAM... de nou cap raó tècnica per a un poder de 2. De fet esperava 10GB per xip:-)

CDC (l'empresa que queda per a construir ordinadors Cray) va tenir seixanta paraules. Molt bé per ajustar-se a quatre de 15 bits, dos 15 i un 30-h, o dues instruccions de 30 bits en una sola paraula.

Crec que alguns dels arguments desapareguts és convenient que es pugui dividir en dues parts que siguin fàcils de treballar, per exemple amb els registres menors. D'aquí, per a l'arquitectura de la informació, inicialment hi havia 16 bits registrats que es trobaven juntes en dos subregidors de 8 bits, i després aquests registres es van ampliar a 32 bits, mantenint els dígits menys significatius adreçables com a caixa 16 bits, i després a 64 bits. Si tinguessis un registre de 48 bits, deixaria una part estranya de 16 bits més significatius, i hauries de jugar amb 16 bits i 32 bits subregis... Quin dolor!

A més, quan multipliquem els continguts de dos registres, necessiteu un registre de dues vegades (o dos registres de la mida inicial) per a contenir el resultat. Tenir registres que no es poden combinar dos per dos fan que les coses siguin complicades per a l'aritmètica.

Suposo que aquesta vista està implementada pel fet que, per tractar (i no aritmètica), els processadors internament usen altres números de bits.

Generalment, els processadors es refereixen a x- bit, on x és l' amplada del bus de dades.

En termes difícils, l'augment de la mida dels buss de dades ofereix la velocitat principalment com a recompensa... taca els bits, dues vegades la velocitat de l' accés de les dades. Aquest és l' ideal; alguns d' infidirs estan involucrats (p. ex., recuperar 1 byte encara tenen un cicle en un sistema de 32 bits, igual que recuperar 4 bytes).

Com que la Control-delor apunta, hi ha alguns avantatges logísticas per a mantenir- se amb una amplada de l' autobús de 2 m****N. L' única restricció de seguir aquest patró és que has de doblar l' amplada cada vegada que introdueixes una arquitectura més ampla, donant un augment màxima de velocitat d' accés de 2.

I al final, és difícil justificar una nova arquitectura si no és almenys el doble de ràpid que l'antic.

Tingueu en compte que els microcontroladors del final ofereixen moltes excepcions a aquesta regla, i les propietats de la percepció d'àudio i humana han fet 12 bits una amplada popular per a DSP.

L' amplada del registre de la CPU tendeix a créixer més ràpid que l'habilitat d'obtenir RAM baratament per omplir- lo tot.

Podeu estalviar diners en desenvolupar i fabricar la vostra CPU sense afegir agulles, com ara pins d' adreces, que mai s' usaran.

A més, el 8086 era molt estrany, es van expressar les adreces utilitzant segments. Les línies d'adreça de 20 bits tenien sentit per això.

Acard symbol segment Bàsicament, un valor va canviar 4 bits, i va ser combinat amb un Desplaçament per aconseguir l'adreça real. E.g 0000h: 1000h i 0001h: 0100h referia a la mateixa direcció. Això va permetre alguns trucs interessants fent el codi relocatable crec, però va fer que els punters de l' estil C siguin complicats.

386 i altres arquitectures de CPU amb MMUds canvien la partida una mica.

Les adreces físiques només importen si

  • La teva MUM és "finatació" i el seu mapa és 1:1 de virtual->física.
  • Estàs al "ring 0" o nucli/ supervidor mode que permet accedir a tota la memòria.

Quan estàs al "ring 3" o usuari mode, el vostre accés està consternat per la MMU - les pàgines d' accés que estan marcades especialment provocaran un culpa fins al mode del nucli.

Ara, és clar, això es pot usar per a limitar un procés d' usuari a una quantitat específica de la memòria. Però també es pot usar per implementar els fitxers d' intercanvi i mmap - un sistema UNIX que utilitza essencialment la MU per fer que sembli que un fitxer està mapa a la memòria. Això simplifica l' accés als programes que necessiten gestionar grans quantitats de dades i accés aleatori, com ara bases de dades.

Així doncs, 64 bits d'adreça són un munt d'espai per a traçar fitxers i alguna adreça alta a l'espai de 64 bits pot ser escollit - però mai està destinada a arribar a la RAM actual en primer lloc.

No puc trobar bons pintes de qualsevol CPU moderna però dubto que siguin físicament de 64 línies d'adreça per a cadascun dels canals de la RAM. Però encara hi ha valor en tenir tots els registres que es refereixen a la memòria són 64 bits degut a dalt.

Si recordo la teoria matemàtica correctament, el sistema numèric ideal té e Números, on 3 és el número enter més proper a ella. Això vol dir que 3 seria millor des d'un punt de vista de teoria, i després un sistema binari, però la implementació en maquinari és més fàcil de fer amb dos nombres llavors 3.

Artículos Relacionados:

- Processador -

Esta web usa cookies, puedes ver la política de cookies, aquí -
Política de cookies +