Quin ordinador només té una CPU?
La majoria de nosaltres coneixerem en algun nivell amb l'operació d'una CPU bàsica, normalment mitjançant l'exposició als microprocessadors del tipus que troba el camí cap als nostres projectes. Podem mirar el seu diagrama de blocs intern i aconseguir com funciona, veure els registres i l'ALU, seguiu els principis d'una arquitectura de von Neumann, i entendre que té una instrucció establerta amb instruccions diferents per a cadascuna de les seves funcions. Tots sabem que això tan sols descriu un tipus de CPU, i que per tant, Tidy sempre és interessant veure alternatives. [Ike Jr] llavors té un projecte que hauria d'oferir molt d'interès, que https un CPU que només té una única instrucció . Només pot moure dades des d'un lloc a un altre, que sembla precludir qualsevol possibilitat de càlcul. Com pot funcionar?
La màquina té un conjunt de registres, així com la memòria, i aconsegueix càlculs amb registres específics on esperem veure les instruccions. Per exemple, el registre i el registre és una pila de dues declaracions, que quan està ple calcula les i dues peces de dades i posa el resultat en un registre general. L'escriptura va a un detall significatiu sobre l'operació de CPUòcrates, i mentre que psrovs improbables el món es mourà en massa a aquesta arquitectura que importen encara és una lectura molt interessant. Per ara això és una màquina que existeix en la simulació de programari més que en silici, i que pstrueix treballant per alliberar-la tan entusiasta de les CPU inusuals pot tenir una marxa.
Pot ser un al·legador de com el cpu està implementat en silici. Si mirem com està implementat el 6502, podeu veure com es descodificaran les instruccions en una matriu. Si entenc aquest cpu, els registres s'encarreguen de les reductures de l'Ekkainstrall, i per tant, només hi ha una instruccions tècnicament.
La part més important d'això és explorar com es pot fer un cpu. Tinc els meus engranatges girant.
La matriu de dades elaboració de dades serveix el mateix concepte que el descodificador d' instrucció. Com que les adreces són codificades, prenen el lloc d' instruccions.
La pregunta és sobre la granularitat. Amb una màquina basada en el registre, cada registre té una funció definida i ha d' implementar aquesta funció per separat. Amb una màquina basada en instrucció/micròcode, una única ALU pot fer normalment la majoria de les funcions, de manera que el circuit no es duplicarà excepte si s' afegeix un segon ALU per accelerar les coses.
Hi ha diversos exemples d'arquitecturas d'ordinadors individuals. Fa anys vaig construir una que s'utilitzava una subtrunció i comparava instruccions... si el resultat era zero, va executar la següent instrucció... si no, s'esgonara. Tot i que no era molt eficient.
Cap de les arquitectures d'arquitectura realment ha anat enlloc. Potser el millor conegut era els miniordinadors GRI dels principis (i qui els recorda?). Crec que Burughs va fer servir alguns dels conceptes en els microcodecocodir motors en alguns dels seus petits subordinadors dels anys 70.
L'Antahsendent RISC Einstein va ser l'article que em va fer tornar a aquest camí el 1988 quan el van publicar. He fet molts canvis al disseny original.
El PC és l' adreça 0 i pot ser llegit o escrit. Adreça 1 quan es llegeixi (PC++). Quan s' escriu, el registre 1 fa que el PC s' escrigui a la pila i el valor d' escriptura es carrega al registre 0 (CP) que faci una instrucció de crida.
Ho vam fer als nou anys del meu grup d'ordinadors a la Universitat (TUD). L'anomenavem arquitectura de l'Homove.
Fa uns 15 anys, un paio que treballava a una novel·la d'ordinadors, va publicar públicament que és molt important fer-se enrere les instruccions. Per obtenir un bon rendiment d'un ordinador cal reduir el nombre de bits en el flux d' instruccions perquè el flux d' instruccions és un coll d'ampolla significatiu per a tot el sistema. Aquest paio és l'AntrudentLinus Torvalds eur-se'n.
En aquest cas, sovint utilitza 12 de 40 bits és bastant ineficient. Una arquitectura millor pot usar 4 bits per a seleccionar l'Encondició de les condicions, i després 6+6 per als números de registre. Per aconseguir literals, alguns registres especials poden prendre el número de registre de 6 bits com a constant i moure'l a uns 6 bits en un registre constant. O un registre especial pot activar un registre automàtic: kpsskir la següent instrucció, però carregar les dades a la meitat superior o a la part inferior d' un registre.
De totes maneres, moltes opcions que a la pràctica funcionen una mica millor que això permet afegir 26 bits extra a cada instrucció que rarament s'utilitzen.
Interessant a nivell de programari, però per a aquells que estan interessats en una maquinaria finalitat seguint enllaços que entenc que el processador ja existeix físicament.
MAXQ[ 5] [6] des de Dallas Semiconductor, l' únic microcontrolador comercial disponible construït sobre l' arquitectura de transport, és una instrucció OISC o identificadorone establert a l'ordinador 2003- 2005. Ofereix una única instrucció de moviment flexible, que pot funcionar com a diverses instruccions virtuals movent els valors directament al comptador del programa.
Això tècnicament és un ordinador de dues instruccions. Mou un literal o mou el contingut d'un registre. Però es podria convertir a un ordinador d' instruccions si guardareu literals en ROM.
Comptem cada instrucció que anomenen les seves pròpies instruccions. O hauríem de mirar la funció de la crida d' instruccions i simplement considerar les seves variants com les mateixes.
Per exemple, x86 té 96 variants per a la seva instrucció condicional, depenent de quina condició salta. Això és una instrucció, o 96 instruccions?
Un pot argumentar que ocupa les trucades de 96 i hi ha instruccions de 96. També es pot discutir que utilitza 1 conjunt de maquinari i simplement les dades d'una multitud de ubicacions.
Almenys estic al camp on un compta com un martell com un objecte, encara que un martell en una multitud de diferents tipus de ungles amb ell. Ie, x86 té 1 instrucció condicional, amb 96 instruccions.
No hi ha massa lloc per a discutir, les coses que descriuen tenen noms diferents degut a ser diferents. Una instrucció és un codi d' articles, representat com una paraula en memòria, arguments sans. Una microtraducció manipula el canvi transistor. Cada instrucció és una llista d' una o més micro-stracció.
96 signes d'opinió de la màquina són 96, fins i tot si una funció/Nornamebidon a l'assemblea. Cadascun és una llista diferent de micro-stracció. Les funcions estan pujant per a descriure un humà.
El condicional contra el salt és una diferència òbvia, però fins i tot salta al literal contra el parent és una gran quantitat de micro-instracció, on salta al literal contra saltar a la caixa és encara més gran. Especificar una adreça literal per saltar només manipular el registre del programa, on el registre també ha de recollir dades, i un salt relatiu fa aquells més invoca l' ALU. La llista de micro-stracció es torna més llarga amb cadascuna.
Només perquè hi ha una ordre d' assemblea 2001- 04JMPDRE (un martell en la vostra comparació), importa quin op- codi usar (un martell per a mans humanes, un mini model d' escala de 1/3, un cos de plàstic, elaborat en paper, hidrolic multin. Aquestes diferències), fins i tot si apareixen la mateixa funció (un tornavís també pot martellejar les ungles, si voleu que sigui prou dolent)
Julian Ilett ha estat creant un ordinador com aquest al seu canal de YouTube. Paraules de 8 bits, i construïu literals per manera d'un registre que canvia 4 bits i després copies sobre els bits del codi font des de la paraula d' instrucció actual. Copiar aquest registre en un altre lloc funciona com a normal. Crec que també tenia un adder implementat en aquest punt.
I▁smello l'autor i he passat massa temps estudiant els 6502 i les seves variants.
Si tireu els bytes d' articles, aleshores us en queden 5 segons les instruccions de ISC que s'assemblen a un codi tradicional 1-byte 4 més de 4 bits de l' operand; i un podria ser que opcionalment repureu algunes de les peces d' oppcode per a l' operand bits, per tant no esteu fent realment un fitxer de CPU d' un sol codi. Tu sí que fas una CPU que té un addiatge addicional a cada codi d'opi real que no és realment un codi d'opi en absolut. Però digres.
Altres pensaments; jo no crec que antropts sigui un ideal nosspicable per emmagatzemar valors en el registre de l'estat, com si l'altra cosa fos clar portar i fer miques?
A més, l'altra part en la que s'ha truncat l'adreça de destí sembla que debilitaria la utilitat global d'aquesta operació. Això em recorda a escenaris que requereixen un canvi de banc per resoldre, i pot ser molt ràpid.
Una arquitectura basada en moviment seria un bon candidat per a l'arquitectura parcialment mecànica per a l'ús en un museu de ciències. Usa un robot per moure literalment dades entre unitats operatives.
Per exemple, els bits es poden representar per discs que tinguin un zero a una banda i un a l'altre. En rodar una mica es converteix en una operació literal. El robot podria empènyer un conjunt de bits en un registre per a una escriptura.
Ho sento, però difondre les unitats lògiques d'un ordinador a través d'un autobús no ho fa una sola CPU. Això fa que una Unitat de processament DPUBrite distribuït.
Per cert: la idea d'un coprocessador, en la que els operands s' escriuen a dues adreces i el resultat es llegeix des d'una tercera, ha estat a partir del 1944, a la calculadora de seqüència automàtica d'IBM, també conegut com a la Mark Harvard I. La multiplicació de la unitat estava connectada d'aquesta manera.
Desfer-se de les objeccions al maquinari especial com ara els i els registres i les piles. Simplement utilitza buscar taules amb les dades com a adreça. Per exemple, moveu les dades a la localització X i X+1. Llegeix el resultat a Y+3,4,5 segons els resultats necessaris per l' operació. El ROM està mapat a la RAM amb línies d' adreces de ROM com a entrada i línies de dades són una sortida compartida per totes les operacions en aquest ROM. Pots fer-ho tot. Alguns bastant sofisticats, i tots els hustkinstant Carlemany. O, per menys hardware, només un EPROM de totes les taules. Es considerarien instruccions les LUT?
Aquesta arquitectura necessita literals emmagatzemats en algun lloc? O sempre podeu obtenir valors que necessiteu usant un registre d' increment o de decoració. Suposo que hi ha un MOV Immediat amb un literal en la instrucció?
Molts ja han notat la semblança d'això a intents anteriors, flux de dades així com màquines de pila. Des de la marca d'escriptura sembla que el registre de l' espai de contacte està substituint els codis, però amb més dificultat al compilador tant per a la planificació de les unitats com en execució. Sempre m'alegro de veure noves idees, encara que se'ls apropessin abans. Després de tot, l'execució de l'ordre avui és comuna, però ha fallat malament quan va intentar-ho. Es va prendre el disseny Pentiuium Pro per fer-lo funcionar.
Bona lectura d'abstracció de la nit. M'agrada el potencial per a facilitar paral·lelisme a un grau en què l'operació en els registres si no depèn de la següent instrucció en joc, etc... Gràcies per publicar:-)
No recordo el nom del projecte ni del inventor, però l'ordinador de 1instracció que vaig llegir, el primer que va fer una vegada que el maquinari era un punt de treball, va ser escriure un macro muntar per a això, i un conjunt de macros per a fer macros raonables que s'assemblaven a les instruccions d'una màquina més convencional. De manera que <br />només és un pas molt gran</i> per a tenir un compilador complet o intèrpret, per executar la vostra llengua preferida. Això neteja la bellesa de les màquines: qualsevol màquina amb recursos suficients (memory, sobretot) es pot fer per fer el que qualsevol altra pot fer.
Artículos Relacionados:
- Un ordinador pot tenir més d'una CPU?
- Quantes CPU té una pissarra?
- Com sé quin nucli té la CPU?
- Què fa servir més la CPU?
- Quantes divisions té una CPU?
- Processador -